java – 条件检查c:如果总是失败
发布时间:2020-12-15 08:31:54 所属栏目:Java 来源:网络整理
导读:c:如果测试总是对我失败,它永远不会进入循环.我使用以下命名空间 xmlns:fn="http://java.sun.com/jsp/jstl/functions"xmlns:c="http://java.sun.com/jstl/core" 要拆分的字符串(‘array’)是“Tom和Jerry是GAP1的朋友” s:decorate template="/layout/displ
c:如果测试总是对我失败,它永远不会进入循环.我使用以下命名空间
xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:c="http://java.sun.com/jstl/core" 要拆分的字符串(‘array’)是“Tom和Jerry是GAP1的朋友” <s:decorate template="/layout/display-text.xhtml"> <c:set var="array" value="#{_mybean.value}"/> <c:set var="space" value="#{fn:split(array,' ')}"/> <c:set var="len" value="#{fn:length(space)}"/> <h:outputText value="total length = #{len}"/><br/> <c:forEach begin="0" end="5" var="index"> <h:outputText value="index = #{index},value = #{space[index]}"/><br/> <c:set var="val" value="#{space[index]}"/> <c:if test="#{fn:startsWith(val,'GAP')}"> <h:outputText value="Found keyword parameter GAP" /><br/> </c:if> </c:forEach> </s:decorate> 解决方法
JSTL核心URI无效.按照
JSTL TLD应该是(注意额外/ jsp):
xmlns:c="http://java.sun.com/jsp/jstl/core" 也就是说,将JSF与JSTL混合使用从来都不是一个好主意.它并不总能像您期望的那样给出结果,因为它们不像编码所期望的那样同步运行. JSP / JSTL首先从上到下运行,然后将生成的结果交给JSF再次从上到下进一步处理.这会导致一些特定的结构失败.更好地使用纯JSF组件/属性. 而不是c:forEach,而是使用Seam的a4j:repeat或Facelets’ui:repeat而不是c:if如果使用JSF组件的呈现属性,必须切换显示/隐藏.而不是所有JSTL c:set,在托管bean构造函数或操作方法或getter中编写适当的代码逻辑. 然而,JSTL函数(fn)taglib在JSF中仍然非常有价值.你可以继续使用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |