- PR -

WEB画面のメッセージ表示

1
投稿者投稿内容
パンダ
ベテラン
会議室デビュー日: 2004/03/24
投稿数: 59
投稿日時: 2006-01-15 20:55
struts+tomcatで開発している初心者です。
質問ばかりですみませんが、教えて頂けないでしょうか?

(やりたいこと)
画面の表示メッセージをDBから取得して表示したい場合、DBからのメッセージ
取得処理をどこに記述して、struts-config.xmlにはどのような画面遷移を定義
すれば良いのでしょか?

(例)
@画面MにDBのメッセージテーブルから取得したメッセージを表示したい。
 (表示するメッセージは呼ばれ元画面に関係しない。画面Mだけに依存する)
A画面A→画面Mへ画面遷移する時、画面AのアクションクラスにDB取得処理を記述して、
 request.setAttributeで画面M.jspに渡しています。
Bやりたいことは実現できるのですが、画面B→画面Mの遷移の時も画面Bのアクションクラス
 に記述する必要があり、効率的でありません。
Cそもそも画面Mのメッセージが呼ばれ元には依存しない仕様なので、画面Aや画面Bの
 アクションクラスに記述すること自体に抵抗があります。

ASP.NETのpage_loadのようなイメージで記述できる部分があれば良いのですが・・・

どのような記述にすれば宜しいのでしょうか?
よろしくお願いします。

かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-01-15 21:13
現状では、

・AアクションクラスからM画面のJSPにフォワード
・BアクションクラスからM画面のJSPにフォワード

ということでしょうか。

アクションマッピングの記述でフォワード先にM画面のJSPを指定していると思いますが、
 「業務ロジックを実行してからM画面のJSPにフォワードするアクション」
を作成して、そのアクションに対してフォワードするように
変更すればよいと思います。
パンダ
ベテラン
会議室デビュー日: 2004/03/24
投稿数: 59
投稿日時: 2006-01-17 19:43
引用:


アクションマッピングの記述でフォワード先にM画面のJSPを指定していると思いますが、
 「業務ロジックを実行してからM画面のJSPにフォワードするアクション」
を作成して、そのアクションに対してフォワードするように
変更すればよいと思います。




私の記述(例)が悪く、うまく質問の意図が伝わっていないようなので
もう一度、説明します。
画面Mに業務ロジックの結果を表示したいのですが、他の画面のアクション
クラスからフォワードされるのでなく、画面Mに関係するクラスのみで処理
を完結したいのです。
いきなり、「http://XXX.XXX.XXX/画面M.JSP」で画面Mに業務ロジックの結果
を表示するにはどのようにすれば良いのでしょうか?
よろしくお願いします。

かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-01-17 21:26
http://XXX.XXX.XXX/画面M.JSP
に対するリクエストをハンドルしてJSPの実行前に
何かしらの処理がしたいって事ですよね。

どうしても[.jsp]というアドレスにこだわるのであれば、
サーブレットフィルタ等もありますが、
何かしらの処理を実行してから画面M.JSPに遷移するアクションクラスを作って、
http://XXX.XXX.XXX/画面M.do
にアクセスするのがいいと思いますよ。
ふーばー
大ベテラン
会議室デビュー日: 2003/06/05
投稿数: 163
投稿日時: 2006-01-18 09:32
引用:

いきなり、「http://XXX.XXX.XXX/画面M.JSP」で画面Mに業務ロジックの結果
を表示するにはどのようにすれば良いのでしょうか?



それは、Struts の流儀ではありません。方向性が間違っています。

Struts では、
http://host/画面M出力アクション.do
のようにすることで、JSP の物理ファイル名を隠蔽することを目指しています。
仕様変更によりJSPを差し替えても、サーバ側の設定変更だけで済むわけです。
パンダ
ベテラン
会議室デビュー日: 2004/03/24
投稿数: 59
投稿日時: 2006-01-19 17:34
ご返信いただきまして、ありがとうございます。
画面M.doの方向で考えたいと思います。
1

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