0

我发现了很多解决方案,但没有一个对我有用。

这是jsp中的bean

<jsp:useBean id="customer" class="com.objects.Customer" scope="request" />
<form action="proceed" method="post">
    <% customer.setEmail("abc");%>
    <input type="submit" value="Proceed" />
</form>

这是小服务程序

Customer customer = (Customer)request.getAttribute("customer");
System.out.println(customer.getEmail());

然后它就繁荣了,客户对象为空。我试图更改为 session 和 getsession 但仍然没有工作。

谁能指出我的错误。?谢谢

4

1 回答 1

2

请求属性不能以这种方式工作。客户 bean 在request对应于前一个请求的对象上实例化:显示表单的对象。当您将表单提交给 servlet 时,您放置customer对象的请求早已不复存在。

但它应该适用于<jsp:useBean id="customer" class="com.objects.Customer" scope="session" />并且session.getAttribute("customer")因为session假设您在浏览器中启用了 cookie,这些对象跨越多个请求。如果它不起作用,那么您提供的代码中还有另一个问题不可见。

还有一个建议:使用标准<jsp:setProperty name="customer" property="email" value="abc" />来设置 bean 值。

于 2012-09-04T18:09:13.697 回答