我尝试在Tomcat v7服务器上运行EL功能,但失败了。
JSP:
<input type="hidden" name="" id="Rcept_<%=i%>" value="${QStr.str_hl( incidentTpEtt.rceptCtts)}">
错误:
当未指定默认命名空间时,函数str2html必须与前缀一起使用
所以我尝试了以下代码
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<input type="hidden" name="" id="Rcept_<%=i%>" value="${fn:str_hl(QStr, incidentTpEtt.rceptCtts)}">
或
<input type="hidden" name="" id="Rcept_<%=i%>" value="${fn:QStr(str_hl, incidentTpEtt.rceptCtts)}">
错误:
无法使用指定的前缀
找到函数str_hl
QStr
:
public static String str_hl(String as_str) {
char[] l_str = null;
int li_len = 0;
StringBuffer l_return = new StringBuffer();
if(as_str == null)
return null;
l_str = as_str.trim().toCharArray();
li_len = l_str.length;
for(int i=0 ; i<li_len ; i++) {
if (l_str[i] == '&') l_return.append("&");
else if(l_str[i] == '<') l_return.append("<");
else if(l_str[i] == '>') l_return.append(">");
else if(l_str[i] == '"') l_return.append(""");
else if(l_str[i] == '\'') l_return.append("'");
else l_return.append(l_str[i]);
}
return l_return.toString();
}
我该如何解决这个问题?
答案 0 :(得分:0)
据我了解这个问题。你已经把方法定义为静态所以调用它有了类名是完全没问题的,你错过的一件事是你应该use scriplet
那里。
<input type="hidden" name="" id="Rcept_<%=i%>" value='<%=QStr.str_hl( incidentTpEtt.rceptCtts)%>'>
为了能够使用EL,您必须在Session,Request或Page等范围之一中定义实例,然后才能使用它。
注意: - 在调用incidentTpEtt
方法之前,您还应该定义实例str_hl
。