「JSP→JavaのActionを起動したい!」に関して教えてもらった内容
こんにちは!久々の投稿です。
Javaに関して教えてもらった内容を
一部業務部分は隠しますが、メモ代わりに投稿します。
スポンサードリンク
質問内容
新しくスタブを作ったので、
既存画面(JSP)にボタンを追加して呼び出しをしたい。
しかし、JSP→Javaの連携がよくわかっていないので、教えてほしい
という内容です。本当に初歩です・・・
スポンサードリンク
回答
まず前提として
本システムではstrutsという仕組みを使っていたはずです。
(ザックリ言うと、MVCモデルで、xmlの設定が多数あるという感じのものです。
jspからどのjavaソースを呼び出すのかなどもxmlの設定で行うイメージです。)
やりたい事としては
①画面にボタンを配置
②ボタン押下時に追加したメソッドを呼び出す
という事で理解致しました。
※②の後にどうするのかは不明。
①については
該当のjsp上にボタンの記載を追加するだけだと思います。
ログインのソース(login.jsp)を例にとると
ログインボタンは以下のような記載になります。
(submitで画面刷新されることになります)
<s:submit value=”ログイン” style=”width:80px;” tabindex=”3″/>
また②については
ログインボタン押下時のsubmitでjspの以下の記載が読み込まれることになるかと思います。
<s:form id=”form1″ name=”form1″ action=”testlogin” method=”post” onSubmit=”form1.submit();allBtnLinkDisabled(); return false;”>
ここで重要なのは「action」という箇所の記載になります。
「action」での記載が「struts.xml」(\resources\配下)というファイルで合致する箇所があり、
ログインの例だと以下のような感じになります。
<action name=”testlogin” class=”loginFunc”>
<param name=”pageId”>0900F00</param>
<result name=”success”>login.jsp</result>
<result name=”duplication”>login.jsp</result>
<result name=”loginerror”>login.jsp</result>
</action>
次に重要なのが「class」という箇所の記載です。
「class」での記載が「Common.xml」(\WebContent\WEB-INF\配下)
というファイルで合致する箇所があり、
ログインの例だと以下のような感じになります。
<bean id=”loginFunc” class=”LoginAction” singleton=”false”>
ここまで来ると、「class」で記載のjavaソースが呼びだされることになります。
よって、この「class」の箇所に追加したソースの記載をすればよいのではないかと思います。
以上、①②についてまとめますと、
以下あたりの対応が必要になるのではないかと思われます。
○jspにボタン記載を追加
○struts.xmlに該当actionの記述を追加(既存の処理に載せるのであれば追加不要かもです)
○Common.xmlに呼び出すクラスの記述を追加(既存の処理に載せるのであれば追加不要かもです)
ちなみに②の後の遷移先は
「struts.xml」で「success」に該当するjspを記載すればよかったかと思います。
(自画面に戻すなら自画面のjspで良かったのではないかと思います。)
<result name=”success”>※呼び出すjspソース</result>
スポンサードリンク
参考になれば幸いです^^