Come posso dichiarare una funzione all'interno di GSP? Ho bisogno di qualcosa come taglib ma dichiarato all'interno di GSP - non importa fuoriÈ possibile dichiarare una funzione all'interno di GSP?
risposta
Non è possibile definire metodi in GSP. Ma si può avere funzioni anonime se si vuole: D
Esempio:
<%
def prettify = { "***$it***" }
%>
<h1>${prettify(someText)}</h1>
Anche se questo esempio non ha molto senso, come quella piccola formattazione potrebbe essere inline. Per qualsiasi tipo di logica aggiuntiva per le visualizzazioni, seguirei OverZealous recommendation e utilizzare un taglib.
No. Basta non farlo. Questo è completamente contro lo scopo di un SPG. Il GSP è progettato per gestire le informazioni di markup visivo, non la logica di programmazione. Le funzioni di lancio direttamente all'interno del tuo SPG sostituiranno in un pasticcio di codice non gestibile.
Perché non lo inserisci in un tag? Questo è ciò che i tag sono per; non importa che sia usato solo all'interno del tuo SPG. L'SPG dovrebbe contenere solo logica di visualizzazione e contenuto di output semplici. Il codice riutilizzabile deve sempre essere contenuto in un taglib o in una sorta di controller o servizio per logica complessa.
Non si parla di quale framework si sta utilizzando, come Gaelyk o Grails. (A meno che tu non stia utilizzando Groovy puro sul server per qualche ragione.) Non c'è un modo pratico per raccomandare qui una buona soluzione senza ulteriori informazioni.
Se si utilizzano tag in stile JSP (<% %>
) nel proprio SPG, probabilmente si sta sbagliando.
Se si desidera una risposta migliore, fornire informazioni più dettagliate sull'ambiente di programmazione, quale è l'obiettivo e perché (per il motivo per cui non si desidera utilizzare un taglib).
Supponiamo di avere un modello per riga. Questo modello non è al di fuori di questo SPG. È possibile dichiarare template all'interno di GSP? –
Vorrei usare '
potrebbe essere utile per un piccolo modello interno, come una gerarchia. – Guillaume
- 1. È possibile dichiarare un tipo nell'ambito della funzione in F #?
- 2. È possibile dichiarare un array associativo nel chiamante della funzione?
- 3. Perché non è possibile dichiarare un nome funzione "_"?
- 4. In C++, è possibile ottenere il tipo di ritorno di una funzione per dichiarare una variabile senza chiamare quella funzione?
- 5. È possibile dichiarare una seconda interfaccia @ per una categoria?
- 6. Perché non è possibile dichiarare una funzione con tipo di ritorno VAR?
- 7. Possiamo dichiarare una funzione amico senza argomento?
- 8. OCaml: dichiarare una funzione prima di definirla
- 9. dichiarare una funzione `type` con` parametri implicit`
- 10. È possibile dichiarare una variabile a 1 bit in Java?
- 11. Perché è possibile dichiarare una variabile senza un valore iniziale?
- 12. È possibile dichiarare una costante dinamica in VB .NET?
- 13. È possibile decltype dichiarare un valore r?
- 14. Dichiarare una funzione statica e successiva non statica: è standard?
- 15. Perché ri-dichiarare una funzione in main?
- 16. Dichiarare una funzione awk in bash
- 17. È possibile estendere una funzione in TypeScript?
- 18. È possibile decomporre una funzione Clojure?
- 19. È possibile rinominare una funzione AWS Lambda?
- 20. collegamento diretto a GSP
- 21. È possibile sostituire una funzione all'interno di una classe PHP?
- 22. È possibile dichiarare una funzione senza argomenti, ma poi passare alcuni argomenti a quella funzione senza generare eccezioni?
- 23. Dichiarare il tipo di "questo" in una funzione dattiloscritto?
- 24. È possibile dichiarare un tipo di funzione che utilizza se stesso come argomento in C++?
- 25. Perché è possibile definire una funzione in un'altra funzione?
- 26. Qual è l'uso di dichiarare una variabile statica come extern all'interno di una funzione?
- 27. è possibile dichiarare enumeri C# come di tipo bool?
- 28. È possibile dichiarare una relazione dopo che la classe è stata creata da automap in SqlAlchemy
- 29. È possibile dichiarare una variabile di convenienza GDB come una matrice?
- 30. È possibile dichiarare un valore di costante statica virtuale in una classe C++?
Sono d'accordo che nella maggior parte dei casi un Taglib (o un sottomodello chiamato con 'g: render') sono le soluzioni corrette. Ma a volte c'è un po 'di logica ripetuta che è bene scrivere solo una volta in un GSP, ma non garantisce tale promozione a un file esterno. In questi casi, mi piace scrivere in questo modo: ' 'Notate i doppi" {{}} 'che definiscono una chiusura. Quindi lo usi come una funzione normale: '$ {greet (" Sam ")}' –
Tobia