• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SAStrutsでActionからJSPに値を渡す)

SAStrutsでActionからJSPに値を渡す

このQ&Aのポイント
  • 勉強して一ヶ月ほどでJSPサーブレットを使った簡単なスケジュールを表示するプログラムを作りました。
  • スケジュール表示で日付で参照し、データベースから取得したスケジュールの日付と合致する場合にリンクを表示するプログラムです。
  • しかし、スクリプトレットで変数として値を受け取る必要があり、現在はその処理がうまくいっていません。

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

  • ベストアンサー
回答No.2

scheduleitemsはrequestスコープにセットされていますか? (Actionクラスのpublicなフィールドとして定義してあるか、そうでなければ明示的なセットを行っていますか?) ところで >しかし、私が作ったものは、スケジュール表示で日付で参照し、そこからデータベースからとったスケジュールの日付と合致するものがある場合リンクを表示するというものでした。 >このためタグライブラリのC:each等の繰り返しは使えないため、スクリプトレットで変数として値を持ってこないと動作しない状態です。 とありますが、jstl:if等の条件式で判断は出来ませんか? (とは言え、どれほど軽微であるにせよ、SAStrutsのMVCで開発する以上はJSP中にロジックを埋め込む事はお勧めしませんが) #ScheduleMain自体に@Transientなワーク変数で「リンクか否か」のフラグを持たせる等すれば分離しやすくなりますね。

omegasword
質問者

お礼

返答が遅れ大変申し訳ありません。 アドバイスありがとうございます。 scheduleitems自体はrequest持ってますしpublicに設定してあります。 タグによる呼び出し<c:~等で呼び出しが出来るのですがattribute自体にセットできないので苦労していました。 >>とは言え、どれほど軽微であるにせよ、SAStrutsのMVCで開発する以上はJSP中にロジックを埋め込む事はお勧めしませんが 結局items[32]の配列にsqlで持ってきた情報をつめることによって解決させました。 やはりAction変数を詰め込めるだけ詰め込んで渡すのがスマートなのでしょうかね・・・

その他の回答 (1)

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

どこでも request.setAttribute("Scheduleitems", Scheduleitemsクラスのインスタンス); をしていませんが、それは記載していないだけでしょうか? ただ、SAStrutsならsetAttribute、getAttributeで受け渡すこと自体が正しくない気がしますね。 http://sastruts.seasar.org/featureReference.html#JSP こちらは参考になりませんか?

omegasword
質問者

お礼

返答が遅れ大変申し訳ありません。 アドバイスありがとうございます。 やはりELやタグを使うのが一般的のようですね。結局Actionに配列としてその月の情報を詰め込むことで解決しました。 出来ればJSPで作ったとおりに再現したかったので(この時点で横着なのかもしれませんが)残念です。 勉強になりました、ありがとうございました。

関連するQ&A