我有一个存储在会话中的Bean,以及三种形式。我需要将提交的值保存到bean中,这是序列: Form1.jsp - > Form2.jsp - > Form3.jsp - > ViewValues.jsp
这是我的豆子:
package bean;
public class Cotizacion implements java.io.Serializable {
private static final long serialVersionUID = 1L;
// Some properties ...
public Cotizacion(){
// Nothing ...
}
// Accessors & toString ...
}
第一个JSP有这个动作:
<jsp:useBean id="cotizacion" class="bean.Cotizacion" scope="session" />
第二个和第三个JSP有这个动作:
<jsp:useBean id="cotizacion" class="bean.Cotizacion" scope="session">
<jsp:setProperty name="cotizacion" property="*" />
</jsp:useBean>
当我在第三种形式中尝试<% System.out.print("Cobertura.jsp: " + cotizacion); %>
时,控制台输出为:
Cobertura.jsp:Ford; T; 1990; 5000; null; null; null; null; null; null
只在第一次提交后填充bean。 bean属性与请求参数相同。
有什么想法吗?
答案 0 :(得分:1)
<jsp:setProperty name="cotizacion" property="*" />
来自请求参数的重新初始化属性,但您没有使用参数或参数为空。确保bean具有getter和setter。如果删除此标记,则bean应保留会话值。如果要使用请求中的参数填充bean,请使用
<jsp:useBean id="cotizacion" class="bean.Cotizacion" scope="session"></jsp:useBean>
<jsp:setProperty name="cotizacion" property="*" />
上面的示例导致迭代HTTP请求参数,将bean属性名称与请求参数名称匹配,并根据相应的请求参数值设置bean属性值。如果使用POST方法提交表单,则缺少请求中的参数。