猿问
如何使用JSTL / EL从JSP调用参数化方法
如何使用JSTL / EL从JSP调用带有在Java类中定义的参数的Java方法。该方法返回数组。可以使用任何返回值。
Smart猫小萌
浏览 639
回答 3
3回答
神不在的星期二
如果您要针对并运行带有web.xml声明的遵循Servlet 3.0 的Servlet 3.0兼容容器(例如Tomcat 7,Glassfish 3,JBoss AS 6等),则只能在EL中调用带有参数的方法。此Servlet版本随EL 2.2一起提供,它允许调用带有参数的任意实例方法。假设您${bean}在范围内引用了一个类的实例,该实例具有类似的方法public Object[] getArray(String key),那么您应该能够做到这一点:<c:forEach items="${bean.getArray('foo')}" var="item"> ${item} <br /></c:forEach>甚至使用另一个变量作为参数<c:forEach items="${bean.getArray(foo)}" var="item"> ${item} <br /></c:forEach>但是,如果您不以Servlet 3.0容器为目标,则根本无法在EL中调用带有参数的方法。最好的选择是按照Duffymo的建议在预处理Servlet中完成这项工作。Object[] array = bean.getArray("foo");request.setAttribute("array", array);// ...作为完全不同的替代方法,您可以创建一个委托函数调用的EL函数。您可以在此博客底部附近找到启动示例。您想要的最终结果如下:<c:forEach items="${util:getArray(bean, 'foo')}" var="item"> ${item} <br /></c:forEach>与public static Object[] getArray(Bean bean, String key) { return bean.getArray(key);}
0
0
0
慕后森
上述解决方案对我没有用。getRemitanceProfileInformation(user)我的java类中有一个函数 。我创建了java类的usebean,然后调用了<c:set var="paymentValueCode" value='remittanceaddr.getRemitanceProfileInformation("${user}")'/>而且有效。
0
0
0
蝴蝶不菲
给JSP对具有该方法的类的实例的引用,然后调用它。您可能会问谁给了JSP那个实例-它是Model-2 MVC安排中的一个servlet。这是流程的工作方式:从JSP向Servlet提交GET / POST请求。Servlet响应该请求,并代表JSP进行一些工作。将所有必要的对象放入请求,会话或其他适当的范围。Servlet将响应路由到下一个JSP,这可能与发出请求的JSP相同。冲洗,重复。
0
0
0
随时随地看视频
慕课网APP
相关分类
JavaScript
我要回答