【问题标题】:JSTL <c:if test> without containsJSTL <c:if test> 不包含
【发布时间】:2015-04-05 07:52:43
【问题描述】:

早上好。这是我第一次决定提出问题。

我正在处理一个 xhtml 并想提出这个条件:

<c:if test="#{fichaTecnicaBean.seccionesSeleccionadas.contains("text")}">

显示是否包含&lt;div&gt;,但不适用于包含。我用javascript试过了,但我也没有进入函数:

<c:if test="javascript:find('text');">

有什么办法吗?

【问题讨论】:

    标签: java javascript xhtml


    【解决方案1】:

    JSTL 标签是在服务器端评估的,所以在客户端执行的javascript 不能在&lt;c:if&gt; 测试属性中工作。

    尝试使用$ 而不是#,我认为这更适合您的情况(有关$# 区别的更多信息,请参阅post 中的答案)。

    此外,在某些 jsp/servlet 旧版本中,调用方法在 JSTL 上不起作用,您只能使用对象属性(这可能是.contains() 不起作用的原因)。因此,由于fichaTecnicaBean.seccionesSeleccionadasList&lt;String&gt;,您可以尝试使用&lt;c:forEach&gt; 并按如下方式比较它们的元素:

    <c:forEach items="${fichaTecnicaBean.seccionesSeleccionadas}" var="seccion"> 
        <c:if test ="${seccion == 'text'} ">
        ...
        </c:if>
    </c:forEach>
    

    希望对你有帮助,

    【讨论】:

    • 感谢您的帮助,我没有解决我的问题,因为我收到错误 。 tomcat 显示以下错误:javax.faces.view.facelets.FaceletException: Error Parsing /views/fichaTecnica/listaComponentes.xhtml: Error Traced[line: 18] El contenido de los elementos debe constar de marcadores o datos de carácter con联合国格式更正。在 com.sun.faces.facelets.compiler.SAXCompiler.doCompile 我也尝试将它们放在第一个但不认识我
    • @IgnacioUnzueta 哦,我不知道您正在处理列表,我认为现在我的回答更准确:)
    猜你喜欢
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2011-06-10
    • 1970-01-01
    • 2014-11-15
    相关资源
    最近更新 更多