mercredi 16 février 2011

java EE : jstl méthode pour récupérer des variables JSTL en scriptlet

La chose important à noter, n'est pas que ce n'est ni très jolie, ni recommandé d'utiliser les scriplets.

La chose intéressantes est de récupérer une varaible JSTL dans le scriptlet pour pouvoir appeler une méthode JAVA :

<c:set var="fieldId" value="${field.id}"/>

et une récupération par la scriptlet qui va bien :
Object id = pageContext.getAttribute("fieldId");

Voici, l'exemple complet :

<td>
<select name="<c:out value="${field.id}"/>FIELD_POSTTRAITEMENT" onChange="javascript:submitRefresh();">
<c:set var="fieldId" value="${field.id}"/>
<c:set var="fieldPostTraitement" value="${field.postTraitement}"/>
<%
Object id = pageContext.getAttribute("fieldId");
Object postTr = pageContext.getAttribute("fieldPostTraitement");
boolean isPostTraite = com.generic.description.PostTraitementHelper.getInstance().isPostTraite((String) id);

if(isPostTraite==false){%>
<option

value="<c:out value="<%= com.generic.description.PostTraitementHelper.NONE %>"/>"><c:out

value="<%= com.generic.description.PostTraitementHelper.NONE %>" />
</option>
<%}else{%>
<c:forEach var="action" items="${NEW_PROJECT.actionList}">
<option value="<c:out value="${action}"/>"
<%
Object act = pageContext.getAttribute("action");
if(postTr.equals((String)act)){
%>
selected
<%}%>
><c:out value="${action}" /></option>
</c:forEach>
<%}%>
</select>
</td>

Aucun commentaire:

Enregistrer un commentaire