调用JSP页面中定义的函数

时间:2013-02-18 07:58:51

标签: java jsp jstl

我在jsp页面顶部定义了类似下面的函数

<%!
  public boolean isSkillSelcted(String Skill1)
  {
     ...
     .. 
     . 
     return true;
  }
%>

现在我想在复选框中调用函数,如下所示

<input name="chkSkills" type="checkbox" id="chkJava" value="Java" 
       <c:if test='${isSkillSelcted("Java") == true}'>Checked</c:if>>Java

如果函数返回true,则复选框将被标记为checked.Its显示异常,如下所示。

    org.apache.jasper.JasperException: /EditUser.jsp(73,71) 
The function isSkillSelcted must be used with a prefix when a default namespace is not specified

当我在fn开头追加fn:isSkillSelcted其抱怨函数未定义

enter image description here

1 个答案:

答案 0 :(得分:0)

语句${isSkillSelcted("Java")}是对表达式语言函数的调用。 使用表达式语言功能时,必须在.tld文件中声明它,并指定使用它们的前缀。这解释为here

如果在JSP页面中声明了您的函数,则必须按以下方式调用它:

  <input name="chkSkills" type="checkbox" id="chkJava" value="Java" 
  <% if (isSkillSelcted("Java")) { %>Checked<% } %> >