2016-03-21 14 views
2

サーブレット内の属性に整数のリストを設定しようとしていて、リダイレクトされたJSPページでリストを取得しようとしています。サーブレットの属性としてリストを設定し、JSPで取得する

私は以前の回答herehereなどを見てきました。私のコードは私の答えと同じようです。明らかに私は間違ったことをしましたが、私はその問題を見ることができません。

"accomList"は、サーブレットのコンソールにリストを出力してテストしたので、サーブレットに正しく設定されていることに注意してください。 [1,2,3,4,21]に設定されています。

"AccomSearch.java" サーブレット

session.setAttribute("accomList",accomList);//set list as attribute 
getServletConfig().getServletContext().getRequestDispatcher("/viewAccom.jsp").forward(request,response); // redirect to jsp page 

^属性に "accomList" リストを設定すると、JSPページにユーザーをリダイレクトします。

"viewAccom.jsp" JSPページ、 "accomList" 属性を取得リストにキャストし、それを表示しようとすると

<% 
      List<Integer> accomList = new ArrayList<>(); 
      accomList = (List<Integer>) request.getAttribute("accomList"); 
      if (accomList==null){ 
       out.println("accomList is null, Why is the list null?"); 
      }else{ 
       for (int i = 0; i < accomList.size(); i++) { 
        out.println(Integer.toString(accomList.get(i))); 
       } 
      } 

     %> 

^。

コードが実行されると、JSPページの "accomList"変数が "Null"として返されます。したがって、String "accomListはnullです。なぜリストはnullですか?"ブラウザに表示されます。これは意図されていません。

私の推測では、属性を誤って設定しているか取得しています。あなたが余裕を持って助けることができたら、事前に感謝します。

また、これは私の最初のStackOverflowの質問ですので、あなたがrequestないでListを設定する必要がありますなど、

答えて

0

を私が間違っていた領域でこれを投稿している、またはフォーマットが不良であるなら、私に知らせてsession

request.setAttribute("accomList",accomList);//set list as attribute 

またはあなたにjspコードを変更:

accomList = (List<Integer>) request.getSession().getAttribute("accomList"); 

現在、ユーザsessionListを設定しているためです。

+1

どのように私はそれを見ていないのですか...ありがとう。私は私が過労だと思う。 xD –

+0

あなたはjspの式言語を使ってリストを$ {accomList} –

関連する問題