我找到了很多解决方案,但它们都不适合我。
这是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,但仍然没有工作。
有人能指出我的错误吗?感谢
答案 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值。