- PR -

sessionに格納時のエラーについて

投稿者投稿内容
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-07-20 17:21
試しに
コード:

session.setAttribute("TopForm", list);


コード:

<logic:iterate id="data" name="TopForm" scope="session" >


で参照・設定しているセッションキー名を別な名称にして同様の現象が出るか
チェックした方がいいと思いますよ。
struts-config.xmlでTopFormというフォームBeanを定義してたりしてそうなん
だけどなー・・・。

それから
引用:

ここでgetした時にエラーが出てるんでしょうか…


って、いやそれはまだ分からないんですけど、もう少し自分で色々試してみる
ようにしないと、問題解決能力が鍛えられませんよ。



[ メッセージ編集済み 編集者: 小僧 編集日時 2007-07-20 17:23 ]
のぶ
会議室デビュー日: 2003/01/09
投稿数: 11
お住まい・勤務地: とちぎ
投稿日時: 2007-07-20 20:23
小僧さんが言うとおりstruts-config.xmlでアクションのフォーム名をTopFormにしているからではないでしょうか?
最初はsetAttribute()した'TopForm'が参照されるでしょうが、submit後はActionForm(form.ToForm.class)が'TopForm'に上書きされてしまいますよね。

引用:

struts-config.xml
<form-beans>
<form-bean name="TopForm" type="form.TopForm"/>
</form-beans>
<action-mappings>
<action path="/top" name="TopForm" type="action.TopAction" scope="session">
<forward name="top" path="/top.jsp"/>
</action>



[ メッセージ編集済み 編集者: のぶ 編集日時 2007-07-20 20:32 ]
まろにえ
会議室デビュー日: 2007/06/11
投稿数: 12
お住まい・勤務地: 東京
投稿日時: 2007-07-23 08:59
皆様の言う通り、セッションキー名を変更したら現象回避致しました。
私のrequest,sessionの認識が間違っていたみたいです。
どなたも親切なご回答ありがとうございました。

>>って、いやそれはまだ分からないんですけど、もう少し自分で色々試してみるようにしないと、問題解決能力が鍛えられませんよ。
教えてばかりで申し訳ありません。
次回からは偏った認識にとらわれず、自分で色々試すように心掛けたいと思います。

------------------------------------------
Action
session.setAttribute("TopForm", list);
  ↓
session.setAttribute("TopPage", list);
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-07-23 11:55
引用:

皆様の言う通り、セッションキー名を変更したら現象回避致しました。
私のrequest,sessionの認識が間違っていたみたいです。



現象が直って何よりなんですが、今後のためにもセッションキーや変数の
命名ルールを変更した方が良いと思います。複数の要素を設定する物は
複数形、またはListなど一見しただけで複数のデータが設定されている
ことを意識させるようにした方が良いです。第三者にコードを理解させ
やすくするという意味合いもありますが、自分自身の思い込みを発生させ
にくくするという意味合いもあります。仕事をする中で、バグが発生する
と、「ここのコードはこうだから大丈夫」と思い込んでしまい、結局
大丈夫だと思い込んでいた部分が問題だったという方を見かけることが
あります。こうなると助け舟的に話を聞いても、「ここは大丈夫なんで、
僕はあっちが問題だと思うんですけどね」なんて言ってしまうので、更に
性質が悪いです。
プロジェクトで命名ルールが決まっていれば、それに従うというのは当たり
前ですが、テストコードレベルでも自分でコーディングするときから意識
して書かないと、自ら書いたコードに翻弄され工数を食ってしまうという
ペナルティを食らうので、お気をつけください。

引用:

教えてばかりで申し訳ありません。



教わって・・・かな。 落ち着きましょう。



[ メッセージ編集済み 編集者: 小僧 編集日時 2007-07-23 11:56 ]
まろにえ
会議室デビュー日: 2007/06/11
投稿数: 12
お住まい・勤務地: 東京
投稿日時: 2007-07-24 09:25
>>小僧さん
ものすごく勉強になりました。
ありがとうございます。

>>教えてばかりで申し訳ありません。
Javaの前に日本語から勉強し直します。。。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2007-07-24 09:57
「教えて」と、かぎ括弧が付けばOKでしょう。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-07-24 10:48
引用:

「教えて」と、かぎ括弧が付けばOKでしょう。



高度な表現だ

スキルアップ/キャリアアップ(JOB@IT)