2010-02-25 5 views
1

Il semble que la vélocité et le freemarker soient assez similaires, du moins pour un usage basique.Quelle technologie Java est-ce?

De toute façon, qu'est-ce que l'architecture "intégrée" ou standard appelée? Il ressemble à:

<c:if test="${someobject.property != null}"> 

Répondre

5

C'est en effet JSTL. Il n'est cependant pas intégré, mais tout ce que vous devez faire est simplement de déposer jstl-1.2.jar dans le /WEB-INF/lib et de déclarer l'un de ses taglibs en haut de la page JSP conformément à la documentation du TLD, par exemple. JSTL core:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

De cette façon, vous pouvez utiliser les balises dans les liens indiqués. La plupart des core tags sont juste des étiquettes de contrôle de flux. JSTL a aussi des taglibs XML et SQL, mais ils sont destinés au prototypage rapide seulement et ne devraient pas être utilisés en production réelle. Ensuite, il y a le taglib Format (fmt) qui est idéal pour internationalization and localization (i18n et l10n). Enfin, il y a le taglib utile functions (fn) qui fournit des fonctions EL simples. Il ya ensuite les ${} choses. C'est ce qu'on appelle expression language. Il accède simplement aux "données dorsales" (les attributs) dans n'importe quelle page, demande, session et application d'une manière Javabéenne avec l'aide de PageContext#findAttribute() et en appelant le Javabean get. Si vous comprenez scriptlets, vous comprendrez l'exemple suivant:

${user.address.street} 

qui résout à peu près à

<%= pageContext.findAttrubute("user").getAddress().getStreet() %> 

EL est nullsafe. Lorsque ${user} ou ${user.address} résout à null, alors il passera simplement tout et n'affichera rien. Dans scriptlets vous auriez obtenu un NPE sur les appels imbriqués ou tout simplement null sur le dernier appel.

Ensuite, il y a le EL unifié, indiqué par la syntaxe #{}. C'est (jusqu'à présent) seulement utilisé en combinaison avec JavaServer Faces (JSF). Il est capable de faire un appel à un Javabean setter sur la propriété dernière. Par exemple.

<h:inputText name="foo" value="#{bean.foo}"> 

va dans les coulisses faire à peu près comme suit

pageContext.findAttribute("bean").setFoo(request.getParameter("foo")); 

Il est d'ailleurs pas une technologie de vue . JSP lui-même est déjà la technologie de vue à elle-même. JSTL est juste un taglib. EL fait juste partie de la spécification JSP. L'autre technologie d'affichage fournie par Java EE est Facelets qui est basée sur XHTML et fournit une intégration beaucoup plus transparente pour JSF que JSP.

Questions connexes