2009-08-04 24 views
1

私は*.java*.jspの間でデータを渡します。これはMVCフレームワークなので、最初に*.javaになります。だから私はrequest.getSession().setAttribute("test", "01010101010")を使用して値を保存し、次に*.jspにはrequest.getSession().getAttribute("test")を使用して値を取得します。 しかし、常に奇妙な文字列"682342348"を返します。request.getSession()。setAttribute()

+1

最初は、なぜこれが機能しないのか分かりません。 値を使用するJSPフラグメントを表示できますか? – djna

+0

今のところ、私が<%= request.getAttribute( "test")%>で使用すると見つかりましたが、すべて問題ありません。 しかし、私はそれは奇妙な文字列を出力します.... – MemoryLeak

+0

JavaScriptの問題になる可能性があります - 私の他の答えは下記を参照してください。 – ironsam

答えて

2

これはjavascriptの質問かもしれない今、alertパラメータの値を引用符で囲む追加してみてください。

変更この:これに

<script>alert(<%=request.getAttribute("test")%>);</script> 

<script>alert('<%=request.getAttribute("test")%>');</script> 
1

は、セッションの外にそれを得るとき、文字列に値をキャストしてみてください。

String.valueOf(request.getSession().getAttribute("test")); 
0

それはあなたのJavaクラスとあなたのJSPが、何とか別のセッションオブジェクトを取得している可能性があります。 session.getId()から返された値を比較して、それらが同じであることを確認することができます。

ただし、JavaクラスからJSPにオブジェクトを渡すだけであれば、セッションをまったく使用する必要はありません。代わりに、要求属性としてデータを格納します。

request.setAttribute("test", "01010101010") 
+0

ええ、私は以前これを使用しましたが、エラーデータも返します。私がrequest.getAttribute( "test")。toString()を使用しようとすると、例外がスローされます – MemoryLeak

0

request.getSession() - それが存在しない場合、これは新しいセッションを作成します。セッションが存在しない場合は作成されないようにするには、request.getSession(false)を使用する必要があります。

関連する問題