2012-09-04 4 views
0

많은 해결책을 발견했지만 그 중 아무 것도 나를 위해 일하지 않습니다. jsp에서 서블릿으로 java bean 전달

이 서블릿 그런

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

그냥 붐, 고객 오브젝트가 null입니다 JSP

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

의 콩이다. 세션과 세션으로 변경하려고했지만 여전히 전혀 작동하지 않았습니다.

누구든지 내 실수를 지적 할 수 있습니까? 감사합니다

+0

서블릿의 메소드에서이 코드를 작성 했습니까? – Miguel

+1

@Miguel :'doPost()'에서. OP는 외관상으로는, 폼이 표시 될 때와 똑같은 HTTP 요청 인스턴스를 마술처럼 사용하고, 모든 속성이 여전히 존재한다고 예상했다. – BalusC

답변

1

요청 속성이 이런 식으로 작동하지 않습니다. 고객 빈은 이전 요청 (양식을 표시하는 요청)에 해당하는 request 오브젝트에서 인스턴스화됩니다. 양식을 서블릿에 제출할 때 customer 객체를 넣은 위치는 오래 전에 사라졌습니다.

session 개체가 브라우저에서 쿠키를 사용할 수 있다고 가정하면 여러 요청에 걸쳐 있기 때문에 <jsp:useBean id="customer" class="com.objects.Customer" scope="session" />session.getAttribute("customer")으로 작동해야합니다. 작동하지 않는 경우 제공된 코드에 표시되지 않는 다른 문제가 있습니다.

또 다른 제안 : 표준 값 <jsp:setProperty name="customer" property="email" value="abc" />을 사용하여 bean 값을 설정하십시오.

관련 문제