電子書籍の厳選無料作品が豊富!

こんにちは。

【abc.jsp】内の
【ボタンA】を押した場合は【abc.jsp】へ
【ボタンB】を押した場合は【edf.jsp】へ

上記のように、
JSPで取得した値により遷移先を変更させようとしています。
ですが、【ボタンA】、【ボタンB】のどちらを
押しても【abc.jsp】に遷移します。
上記の処理を行うにはどうすればよいでしょうか?

以下に抜粋した処理を記述します。
***** 処理(abc.jsp) *****
<logic:equal name="actionForm" property="actionFlag" value="abc">
  <%actionV = "/abc.jsp";%>
</logic:equal>
<logic:notEqual name="actionForm" property="actionFlag" value="abc">
  <%actionV = "/efg.jsp";%>
</logic:notEqual>

<html:form method="POST" action="<%=actionV %>">
以下略

不明な点がありましたら、補足いたします。

A 回答 (1件)

これだけだと、A,Bそれぞれのボタンを押して送信されるとき、どのように値が設定されているのかが見えないからなんともいえんな。



ボタンを押してabc.jspを再表示したとき、実際にブラウザに出力されるHTMLソースコードで、フォームのactionにどのような値が設定されているだろうか。また、<logic:equal>に入る段階で、actionFlagプロパティの値がどうなっているかSystem.out.printlnなどで書き出してチェックしてみてはどうか。案外、どちらかの値が未定義だったりしないだろうか。

この回答への補足

本件、自己解決しました。

今回はstrutsを使用しているので、
struts-config.xmlに処理を追加することで解決しました。
今まで
<forward name="success" path="/abc.jsp"/>
のみでしたが、
<forward name="next" path="/efg.jsp"/>
を追加し、新たなロジックを追加することで
【ボタンB】を押した後に【efg.jsp】に遷移できるようになりました。

回答をしてくださったlogger_man様に
再び、お礼申し上げたいと思います。
ありがとうございました。

補足日時:2008/11/04 14:14
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

再表示したときに、
ブラウザに出力されるソースコードを見たところ、
【ボタンA】
<form name="actionForm" method="POST" action="/abc.jsp">
【ボタンB】
<form name="actionForm" method="POST" action="/efg.jsp">
と、値は正常に渡っていました。

しかし、【ボタンB】を押した場合は【efg.jsp】へ、
という処理を行う場合、
1.【ボタンB】を押す。
2.actionの値に【efg.jsp】が格納される。
3.もう一度【ボタンB】を押す。
4.【efg.jsp】に遷移する。
のようにしなければなりません。

【ボタンB】を押した後に【efg.jsp】に遷移する場合の処理を
引き続き教えていただけたらと思います。
質問続きで申し訳ありませんが、よろしくお願いいたします。

お礼日時:2008/11/04 13:22

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