Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java c中的条件签入:如果总是失败_Java_Jsp_Jsf_Seam_Jstl - Fatal编程技术网

Java c中的条件签入:如果总是失败

Java c中的条件签入:如果总是失败,java,jsp,jsf,seam,jstl,Java,Jsp,Jsf,Seam,Jstl,c:if测试对我来说总是失败,它永远不会进入循环。我正在使用以下名称空间 xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:c="http://java.sun.com/jstl/core" 要拆分的字符串(“数组”)是“Tom和Jerry是GAP1朋友” JSTL核心URI无效。根据要求,它应该是(注意额外的/jsp): 也就是说,将JSF与JSTL混合从来都不是一个好主意。它不会总是像你期望的那样给出结果,因为它们不会像

c:if测试对我来说总是失败,它永远不会进入循环。我正在使用以下名称空间

xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:c="http://java.sun.com/jstl/core"
要拆分的字符串(“数组”)是“Tom和Jerry是GAP1朋友”






JSTL核心URI无效。根据要求,它应该是(注意额外的
/jsp
):

也就是说,将JSF与JSTL混合从来都不是一个好主意。它不会总是像你期望的那样给出结果,因为它们不会像你期望的那样同步运行。更重要的是,JSP/JSTL首先从上到下运行,然后将生成的结果交给JSF,以便再次从上到下进一步处理。这将导致某些特定构造失败。最好使用纯JSF组件/属性

与其使用
c:forEach
,不如使用Seam的
a4j:repeat
或Facelets的
ui:repeat
,而不是
c:if
使用JSF组件的
rendered
属性,该属性必须切换以显示/隐藏。在托管bean构造函数或操作方法或getter中编写适当的代码逻辑,而不是所有JSTL
c:set


然而,JSTL函数(
fn
)标记库在JSF中仍然非常有价值。您可以继续使用它。

我对代码做了以下更改xmlns:c=“所有调试语句(h:outputText)为我打印空值。不确定这里是否所有的fn:函数都对我正常工作。这里还缺少什么?请阅读。正如BalusC上面所说,删除c:forEach和c:if,它们是在构建视图时计算的,而不是在将值应用于页面时计算的。
<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>
xmlns:c="http://java.sun.com/jsp/jstl/core"