アプリ版:「スタンプのみでお礼する」機能のリリースについて

Servletをはじめて間もない初心者です.
説明がわかりづらいかも知れませんがご容赦ください.
Servlet-JSP間の値の受け渡しについての質問です.

Servlet1-----page1.jsp
 |      |__beans1.java
 |
Servlet2-----page2.jsp
       |__beans2.java

という2つのページがあるとします.
page1.jspからpage2.jspを開く時に

page1.jsp → Servlet2 → page2.jsp(編集モード)
              → page2.jsp(登録モード)

の何れかのモードでpage2.jspを開きたいと考えています.
page1.jspの中に
<input type="hidden" name="PageState">
というhidden要素を定義してServlet2にフラグを渡せば解決できると思うのですが,hidden要素はセキュリティ上使用しない方が良い?という記述を読んだことがあるので,この方法でよいのか悩んでおります.
 何かご意見や別の方法がありましたらアドバイスお願いいたします.

A 回答 (2件)

コードを見せていただきました。


結論として、JavaScriptの使用(BtPage関数)自体が無駄ですね。FORMのsubmitやHREFのクリックにより、それぞれ適切なURLがリクエストされれば、それで十分です。もちろん、パラメータ値付きのURLでもかまいません。
    • good
    • 0
この回答へのお礼

ご指摘有難うございました.
アドバイスを参考にして,JavaScript関数は使わずに書きのように修正しました.

----page1.jsp----

<form name="form" method="POST">
<input type="submit" value="検索" onClick="document.form.action='Servlet1'">

<input type="submit" value="登録" onClick="document.form.action='Servlet2?PageState=Regist'">

<a href="Servlet2?PageState=Edit&ID=15">編集</a>
</form>

Submit要素は
<input type="sbumit" value="登録" action="***">
のように書きたかったのですが,
 action="***"
の部分が認識されていないようでした.また,method="GET"にすると
 action='Servlet2?PageState=Edit&ID=15'"
の?以降の文字が無視されるようで,結局この形になりました.
もう少し考えて見ます.
アドバイス頂き有難うございました.

お礼日時:2008/01/13 14:28

モードの決定は、どのように行われるのですか?


(何らかのユーザ入力?)
    • good
    • 0
この回答へのお礼

ご回答有難うございます.
モードの決定ですが,

<input type="button" name="登録" onClick="BtPage('Regist',0)">
または
<a href="#" onClick="BtPage('Edit',15)">15</a> ←IDが15の人を編集

function BtPage(Mode,Id){
 document.form.PageState.value = Mode;
 document.form.ID.value = Id;

 document.form.action = "Servlet2";
 document.form.method = "GET";
 document.form.submit();
 return;
}

<!-- 値渡し用のhidden要素 -->
<input type="hidden" name="PageState">
<input type="hidden" name="ID>

を考えています.
何かご指摘がありましたらお願いいたします.

お礼日時:2008/01/10 22:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!