Java 如何在jstl中获取值
我已经用jstl编写了一段代码。我在执行html时遇到以下错误 我可以在c:set的value属性中调用一个方法吗?如果不能,请告诉我怎么做 例外情况:Java 如何在jstl中获取值,java,jsf,jstl,Java,Jsf,Jstl,我已经用jstl编写了一段代码。我在执行html时遇到以下错误 我可以在c:set的value属性中调用一个方法吗?如果不能,请告诉我怎么做 例外情况: com.sun.facelets.tag.TagAttributeException: /role/MyPage.xhtml @33,82 value="#{roleManager.roleStatus(roleId)}" Error Parsing: #{roleManager.roleStatus(roleId)} 代码: 标准el解析器
com.sun.facelets.tag.TagAttributeException: /role/MyPage.xhtml @33,82 value="#{roleManager.roleStatus(roleId)}" Error Parsing: #{roleManager.roleStatus(roleId)}
代码:
标准el解析器无法使用参数评估方法调用。 以下是一些解决方案: 在bean中使用temp属性:
<c:set target="${roleManager}" property="roleId" value="${roleId}"/>
<c:set var="roleIdValue" value="#{roleManager.roleStatus}" />
使用函数:
<c:set target="${roleManager}" property="roleId" value="${roleId}"/>
<c:set var="roleIdValue" value="#{roleManager.roleStatus}" />
第页:
${prefix:methodName(param1, param2, ...)}
您应该在taglib中声明函数:
<function>
<name>methodName</name>
<function-class>className</function-class>
<function-signature>
returnType methodName(param1Type, param2Type, ...)
</function-signature>
调用的方法名
类名
returnType方法名(param1Type,param2Type,…)
作为参数,您可以使用roleManager本身和参数
使用允许方法调用的el解析器:
<c:set target="${roleManager}" property="roleId" value="${roleId}"/>
<c:set var="roleIdValue" value="#{roleManager.roleStatus}" />
例如使用JBoss el解析器,
或者,您也可以实施您自己的解决方案,如下所述: