Spring Sélectionnez la balise dans la balise personnalisée JSP
-
14-11-2019 - |
Question
J'essaie d'accomplir ce qui suit dans une étiquette JSP:
SELECT.TAG
<%@ attribute name="id" required="true" %>
<%@ attribute name="path" required="true" %>
<%@ attribute name="items" required="true" %>
<%@ attribute name="itemLabel" required="false" %>
<%@ attribute name="itemValue" required="false" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<form:select path="${path}" id="${id}">
<form:options items="${items}" itemLabel="${itemLabel}" itemValue="${itemValue}"/>
</form:select>
Utilisation: (MyCollectionAttribute est défini avec @modelattribute ("MyCollectionAttribute"))
<tags:select items="${mycollectionattribute}" id="id" path="mybean.selectvalue" itemLabel="label" itemValue="id"/>
Cependant, je ne peux pas comprendre comment cartographier correctement la collection d'éléments de la page d'appel à cette balise.El ne semble pas être évalué et est envoyé sous forme de chaîne, ce qui provoque l'erreur suivante:
javax.servlet.ServletException: Type [java.lang.String] is not valid for option items
J'utilise une assez ancienne version de JSTL, celle fournie avec JBoss 4.04GA, pourrait-il être le problème?Je ne sais pas quand les expressions El sont évaluées exactement, $ {x} directement dans le balisage n'évaluent pas par exemple, cela ne fonctionne que dans des balises spéciales.Une mise à niveau peut-elle résoudre ce problème?Et si oui, quelle est la dure d'utiliser votre propre JSTL Lib au lieu de celle fournie avec JBoss?
La solution
Solved.
Was using mismatching servlet versions (2.5 specified, but JBoss 4 uses 2.4), both as dependency and in in web.xml. So EL wasn't working like it should.