2013-02-04 4 views
0

J'utilise Play Framework 1.2.5. Quelle est la différence entre:Jouez! Syntaxe du modèle

@{Application.render()} 

et

@Application.render() 

La première est de préférence utilisée dans l'action de forme tandis que la seconde peut être utilisée pour une matrice d'ancrage. Les deux vont générer une URL, donc pas en mesure de comprendre lequel pour le premier j'ai besoin d'un accolade {}.

Faites-moi savoir s'il vous plaît.

Merci,

Répondre

1

@{} est un raccourci pour générer une URL relative basée sur une route inverse (contrôleur .méthode -> URL)

@@{} vous donne l'adresse absolue

#{} se réfèrent aux étiquettes. Il arrive juste à être une balise #a et vous pouvez faire

#{a @Application.logout()}Disconnect#{/a} 

parce que dans la balise, vous passez en fait le ActionDefinition lorsque vous faites @Application.logout(), pas l'URL.

Voir http://www.playframework.org/documentation/1.2.5/tags

0

Pour autant que je sache, vous avez besoin des accolades lorsque vous utilisez ce dans un modèle, par exemple: <form action="@{Application.post}">.

Je viens d'essayer sans les accolades et cela a abouti à la chaîne exacte (@ Application.render) et non une URL.

Mon code dans le modèle:

@Application.index()<br /> 
@{Application.index()}<br /> 

Résultats dans le code HTML suivant dans mon navigateur:

@Application.index()<br /> 
/<br /> 
+0

Merci pour la réponse. '# {a}' est également un modèle intégré alors pourquoi nous n'avons pas besoin des accolades ici? – WhoAmI