将java bean从jsp传递给servlet

时间:2012-09-04 17:40:03

标签: jsp servlets

我找到了很多解决方案,但它们都不适合我。

这是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>

这是servlet

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

然后它只是繁荣,客户对象为空。我试图改变会话和getsession,但仍然没有工作。

有人能指出我的错误吗?感谢

1 个答案:

答案 0 :(得分:1)

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

但它应该与<jsp:useBean id="customer" class="com.objects.Customer" scope="session" />session.getAttribute("customer")一起使用,因为假设您在浏览器中启用了Cookie,session对象会跨越多个请求。如果它无效,那么您提供的代码中就会出现另一个问题。

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