循环遍历arraylist并使用jsp中的EL将字符串传递给自定义函数

时间:2017-04-06 11:34:42

标签: jsp arraylist el

我编写了一个安静的简单自定义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.E​​LException:无法解析表达式

这就是我这样做的方式,任何人都可以帮助我做正确的方式..... !!

<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>

怎么做?

0 个答案:

没有答案