首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

jsp调用后台Java程序,如何把el表达式做为参数传递

2013-04-20 
jsp调用后台Java程序,怎么把el表达式做为参数传递java后台取到一个map值,传给jsp,并显示:如下: c:forEach

jsp调用后台Java程序,怎么把el表达式做为参数传递
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}

谁知道应该怎么调用才可以~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[解决办法]
定义自定义标签,或者使用jsp:useBean标签
[解决办法]
pageContext.getAttribute("funTrees")
这样应该可以吧

<td><%=FileExtension.format(((对象)pageContext.getAttribute("funTrees")).方法())%></td>

[解决办法]
el表达式${xxx.name}只是调用了get()方法而已,你可以试着对get()方法进行重写呀,加上你对字符串处理的逻辑不就行了吗?也没看到程序,不知道是不是你想要的
[解决办法]
这种不好办咯,我的做法是把EL改成JAVA内嵌代码
<c:forEach>改成
<%for()%>代码形式
[解决办法]
有一个办法,就是在jsp页面里,用<%..%>输写代码,在里面用for循环处理。这样就可以传参了。。。
[解决办法]
引用:
Java code?1pageContext.getAttribute("funTrees")这样应该可以吧

<td><%=FileExtension.format(((对象)pageContext.getAttribute("funTrees")).方法())%></td>


可以用EL 表达式 就可以 用 作用域取。

热点排行
Bad Request.