我知道您可以使用<jsp:useBean>标记在JSP中实例化对象,而无需求助于scriptlet代码。但是,我想实例化一个Integer who值是EL表达式的结果,如下所示:
<jsp:useBean id="total" class="java.lang.Integer">
<jsp:setProperty name="amount" value="${param1 + param2}"/>
</jsp:useBean>当然这是行不通的,因为Integer对象没有名为'amount‘的属性,唯一可以设置它们的值的方法是通过构造函数参数(即Integer对象是不可变的)。有没有办法在不使用scriptlet代码的情况下实例化这样的对象并设置它的值?
谢谢,唐
发布于 2008-12-09 03:48:52
<c:set var="amount" value="${param1 + param2}" scope="page" />
发布于 2008-12-08 23:55:04
原语包装器也没有默认构造函数,所以您甚至不能以这种方式初始化它。
我不确定EL是否应该以这种方式使用。它更像是一种模板语言。目前还不清楚你正在尝试做的事情与以下这些事情相比有什么优势:
<%
Integer total = new Integer(param1 + param2);
%>然后在需要输出值的地方使用<%= %>。您还可以执行以下操作:
<%
pageContext.setAttribute("total", new Integer(param1 + param2));
%>如果您希望值在页面范围内,就像useBean一样。
发布于 2008-12-08 22:17:40
如果你有一个bean,你能用param1和2来更新这个bean吗?创建一个方法setAmount(param1,param2),并在使用getAmount()之前设置它,这是bean将要调用的方法。
https://stackoverflow.com/questions/351117
复制相似问题