2012-07-30 22 views
4

在我的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 

我不能理解它。哪里不对?

回答

5

检查了这一点:JSTL fn:contains() function

用于搜索另外一个字符串(我想这是你试图实现)

在您的代码:

<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" %> 
+0

我不明白...我的回答帮助编辑你,但你接受另一个?这是一个错误? XD – jelies 2012-07-30 11:56:39

+0

但它在我的代码中工作。 – ASUR 2012-09-20 14:09:49

1

您可以在EL中使用您的静态方法(我假设com.community_classification_id.contains是),但首先您必须定义自定义EL功能。

检查this answerthis answer其中介绍了如何在JSP中创建和使用EL函数。然后只记得导入你的taglib,并使用你的静态方法的前缀,如在这些答案中所示。

相关问题