java后台取到一个map值,传给jsp,并显示:如下: <c:forEach items="${funTreeMap}" var="funTrees"> 
      ${funTrees.key}
  </c:forEach>
显示一切正常。
但是我想在显示的时候再调用后台Java代码,做一个转换,如下:
<%@page import="com.hash.login.bean.ManagerBean"%>
...........
<c:forEach items="${funTreeMap}" var="funTrees"> 
      <%= new ManagerBean().getFunNameById(${funTrees.key})
  </c:forEach>
将<c:forEach中每次取到的值(EL表达式)作为参数,调用后台java代码,进行一个计算,
将计算的结果再显示的界面上,结果报错:
An error occurred at line: 17 in the jsp file: /WEB-INF/jsp/tree.jsp
 $ cannot be resolved
<%=  中调用后台进行计算的时候,不认识EL表达式:${funTrees.key}谁知道应该怎么调用才可以~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

解决方案 »

  1.   

    使用JQuery中的$.Post方法可以把值传过去, or JavaScript也可以把值传过去,改变一下form Action的值
    xxx?id=${xxx}  取id就可以了;
      

  2.   

    定义自定义标签,或者使用jsp:useBean标签
      

  3.   

    jsp:useBean 是可以调用后台java代码 可是参数传不过去啊
      

  4.   

    pageContext.getAttribute("funTrees")这样应该可以吧<td><%=FileExtension.format(((对象)pageContext.getAttribute("funTrees")).方法())%></td>
      

  5.   

    el表达式${xxx.name}只是调用了get()方法而已,你可以试着对get()方法进行重写呀,加上你对字符串处理的逻辑不就行了吗?也没看到程序,不知道是不是你想要的
      

  6.   

    这种不好办咯,我的做法是把EL改成JAVA内嵌代码
    <c:forEach>改成
    <%for()%>代码形式
      

  7.   

    有一个办法,就是在jsp页面里,用<%..%>输写代码,在里面用for循环处理。这样就可以传参了