我编写了一个安静的简单自定义El函数类,其中包含一个接受字符串并返回字符串的方法,
这是功能:
public static String getOnlyName(String s) {
String name= s.split(",")[0];
return name;
}
并在customTagLibrary.tld中声明了此函数,如下所示:
<function>
<name>getSessionHere</name>
<function-class>ohm.crm.websocket.CustomELFunction</function-class>
<function-signature>
java.lang.String getOnlyName(java.lang.String)
</function-signature>
</function>
在JSP中,我循环遍历从servlet获得的arraylist,并且它的工作正常,但是当我尝试传递循环arraylist的值时,我得到了:
javax.el.ELException:无法解析表达式
这就是我这样做的方式,任何人都可以帮助我做正确的方式..... !!
<c:forEach items="${data}" var="list">
<tr>
<td id="${list}" name="${list}">${cg:getOnlyName(${list})}</td>
</tr>
</c:forEach>
问题在于调用方法“$ {cg:getOnlyName($ {list})}”
这是tld文件:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">
<display-name>Custom EL Functions</display-name>
<tlib-version>1.0</tlib-version>
<short-name>cg</short-name>
<uri>/WEB-INF/tld/customTagLibrary</uri>
<function>
<name>getSessionHere</name>
<function-class>ohm.crm.websocket.CustomELFunction</function-class>
<function-signature>
java.lang.String getOnlyName(java.lang.String)
</function-signature>
</function>
</taglib>
怎么做?