2015-02-05 511 views
1

早上好。这是我第一次决定提问。JSTL <c:if test>无包含

我是一个XHTML的工作,并希望把这个条件:

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

包括或不<div>上显示,但不工作的包含。我试着用javascript,但我也没有进入该功能:

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

任何解决方案?

回答

0

JSTL标签在服务器端进行评估,因此在客户端执行的javascript不能在<c:if>测试属性内工作。

尝试使用的$代替#我认为更符合你的情况下(有关的$#区别的更多信息请参阅本post答案)。

另外在某些jsp/servlet旧版本中,调用方法不能在JSTL上工作,并且只能使用对象属性(这可能是为什么.contains()不起作用)。如此以来,fichaTecnicaBean.seccionesSeleccionadasList<String>你可以尝试使用<c:forEach>并比较它们的元素如下:

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

希望这有助于

+0

感谢您的帮助,我还没有解决我的问题,因为我得到错误<%@ taglib ...%>。 tomcat向我显示以下错误: javax.faces.view.facelets.FaceletException:Error解析/views/fichaTecnica/listaComponentes.xhtml:错误追踪[line:18] El contenido de los elementos debe constar de marcadores o datos de caráctercon un formato correcto。 \t在com.sun.faces.facelets.compiler.SAXCompiler.doCompile 我试图把它们起初太多,但不承认我<%@ taglib伪 我看到contains方法在另一个字符串和我寻求strng搜索一个列表中的字符串< String> – 2015-02-05 14:59:49

+0

@IgnacioUnzueta哦,我不知道你正在使用一个列表,我认为现在我的答案是更准确':)' – albciff 2015-02-05 15:15:41