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());

その後、ブームになり、顧客オブジェクトはnullです。session と getsession に変更しようとしましたが、それでもまったく機能しませんでした。

誰かが私の間違いを指摘できますか?ありがとう

4

1 に答える 1

2

リクエスト属性はこのようには機能しません。カスタマーBeanは、のリクエストrequestに対応するオブジェクト(フォームを表示するオブジェクト)でインスタンス化されます。フォームをサーブレットに送信すると、オブジェクトを配置したリクエストはなくなります。customer

ただし、ブラウザでCookieが有効になっていると仮定すると、オブジェクトは複数のリクエストにまたがる<jsp:useBean id="customer" class="com.objects.Customer" scope="session" />ためsession.getAttribute("customer")、動作するはずです。sessionそれが機能しない場合は、提供されたコードに表示されない別の問題があります。

もう1つの提案:標準<jsp:setProperty name="customer" property="email" value="abc" />を使用してBeanの値を設定します。

于 2012-09-04T18:09:13.697 に答える