在我的jsp页面中,我指定:
<c:choose>
line 1: <c:when test="${com.community_classification_id.contains('1')}">
<input type="checkbox" id="by_invitation1" name="invitaion" value="1" checked="true">By Invitation<span style="padding-left:28px"></span>
</c:when>
<c:otherwise>
<input type="checkbox" id="by_invitation1" name="invitaion" value="1">By Invitation<span style="padding-left:28px"></span>
</c:otherwise>
</c:choose>
但@line没有。 1它给我带来500错误
The function contains must be used with a prefix when a default namespace is not specified
我无法理解。怎么了?
答案 0 :(得分:6)
检查出来:JSTL fn:contains() function
用于在另一个内部找到一个String(我想这是你想要实现的)
在您的代码中:
<c:choose>
<c:when test="${fn:contains(com.community_classification_id, '1')}">
<input type="checkbox" id="by_invitation1" name="invitaion" value="1" checked="true">By Invitation<span style="padding-left:28px"></span>
</c:when>
<c:otherwise>
<input type="checkbox" id="by_invitation1" name="invitaion" value="1">By Invitation<span style="padding-left:28px"></span>
</c:otherwise>
</c:choose>
不要忘记在JSP中包含taglib以使用它:
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
答案 1 :(得分:1)
您可以在EL中使用静态方法(我假设com.community_classification_id.contains
是),但首先必须定义自定义EL函数。
检查this answer和this answer,其中显示了如何在JSP中创建和使用EL函数。然后记住要导入你的taglib并使用带有前缀的静态方法,如这些答案所示。