• ベストアンサー

jsp から servlet に

パラメータをJSPからServlet に渡す所で、どうしても、null になってしまします‥。 主要な部分だけ書きます。 --jsp-- <jsp:useBean id="beanId" class="Bean" scope="request" /> <form method="POST" action="servlet"> <input type="submit" value="送信"> <input type="text" size="10" name="name"> --servlet-- import Bean; Bean bean = (Bean)request.getAttribute( "beanId" ); // ↑ここが、nullになってしまう。 --Bean-- public String getName() { return name; } public void setName( String name ) { this.name = name; } 考え方が違ってるかも知れないのですが‥。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • momozange
  • ベストアンサー率67% (21/31)
回答No.2

まず前者の方が仰っているようにsetAttributeされてないものは当然nullです。 HTMLフォームの内容をgetParameterしてServlet側でBeanを生成し、それを要求オブジェクトにsetAttributeするような 仕組みを自作するか、その代替となるフレームワークを使用する必要があります。 まだ本格的なアプリケーションの作成ではないのであれば、地道にBeanを作成するようにしていいと思いますよ。 そのうち数多くのBeanを管理する仕組みの必要性を感じるようになると思います。 なお、JSPが表示されるタイミングはすでに実行結果なので、その要求オブジェクトに対してsetAttributeしても 次回のsubmit時には反映されません。 そのライフサイクルをもったものはsessionスコープと呼ばれます。

tosio_s
質問者

お礼

回答ありがとうございます。 >なお、JSPが表示されるタイミングはすでに実行結果なので、その要求オブ >ジェクトに対してsetAttributeしても次回のsubmit時には反映されません。 この部分の理解が間違ってました‥。 html の action 時に、set されると変な理解をしてました。 もう一度、考え直します‥。 今回は、ありがとうございました。

その他の回答 (1)

  • NeilMania
  • ベストアンサー率30% (40/131)
回答No.1

いくつか足りない記述がありますが、 request.getAttribute("")がありますが setAttribute("")はどこにあるのでしょうか…?

tosio_s
質問者

補足

早速の返信ありがとうございます‥ そこの所が自分では、理解出来てないと思うのですが‥。 JSPの中で、 <jsp:useBean id="beanId" class="Bean" scope="request" /> とすると、 servlet側で、 Bean bean = (Bean)request.getAttribute( "beanId" ); とすると、request オブジェクトに入ってると思ってまして‥ 試しに、 --JSP-- <% String st = "java" ; %> <% request.setAttribute( "name1", st ); %> としまして、 --servlet-- String string = (String)request.getAttribute( "name1 "); としましても、やはり結果は、null です‥。 根本的な理解の仕方が間違ってますかね‥?

関連するQ&A

専門家に質問してみよう