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循环处理。这样就可以传参了。。。
------解决方案--------------------
可以用EL 表达式 就可以 用 作用域取。