- PR -

jsp:paramで値が渡せない

1
投稿者投稿内容
Hoo
会議室デビュー日: 2004/09/24
投稿数: 4
投稿日時: 2004-09-24 14:27
こんにちは、JSPについて教えて下さい。
test1.jspでは、1個の入力項目と、2つのボタンがあります。
押されたボタンによって異なる処理をtest2.jspで行おうとしています。
またパラメータを1つ増やしてtest3.jspに渡そうとしているのですが、
(1)増やしたパラメータformNoがtest3.jspに渡されません。
  nullが表示されてしまいます。
(2)キャンセルボタンを押しても、testがクリアされません。

どなたか下記解決方法をご教授下さい。

下記ソース
---< test1.jsp >-------------------------------------
<%@ page import="java.sql.*, atmarkit.*"
contentType="text/html; charset=Shift-JIS" %>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<FORM method="POST" action="test2.jsp">
<INPUT size="3" type="text" name="test">
<INPUT type="submit" name="save" value="  登録  ">
<INPUT type="submit" name="cancel" value="キャンセル">
</FORM>
</BODY>
</HTML>



---< test2.jsp >-------------------------------------
<%@ page import="java.lang.*, java.sql.*, atmarkit.*"
contentType="text/html; charset=Shift-JIS" %>
<%
String action="";
request.setCharacterEncoding("JISAutoDetect");
String test = request.getParameter("test");
String save = request.getParameter("save") ; // 登録ボタン
String cancel = request.getParameter("cancel") ; // キャンセルボタン
String act_url="test3.jsp" ;
int formNo=0;

if ( save != null ){ // 登録ボタン?
formNo=1;
}
if ( cancel != null ){ // キャンセルボタン?
formNo=2;
test = "";
}
%>


<jsp:forward page="<%= act_url %>">
<jsp:param name="formNo" value="<%= formNo %>" />
<jsp:param name="test" value="<%= test %>" />
</jsp:forward>




---< test3.jsp >-------------------------------------
<%@ page import="java.sql.*, atmarkit.*"
contentType="text/html; charset=Shift-JIS" %>
<%
String action="";
request.setCharacterEncoding("JISAutoDetect");
String test = request.getParameter("test");
String formNo = request.getParameter("formNo");
%>

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<FORM>

テスト<INPUT size="3" type="text" name="name1" value="<%= test %>">
formNo<INPUT size="3" type="text" name="name2" value="<%= formNo %>">

</FORM>
</BODY>
</HTML>
Hoo
会議室デビュー日: 2004/09/24
投稿数: 4
投稿日時: 2004-09-27 15:51
どなたか、ご教授お願いします。
m(__)m
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-27 16:17
パッと見ではソースには問題なさそうなのですが…
古いソースが実行されているか何かでtest1.jspからtest3.jspが実行されているか、古い
test2.jspが実行されていたりしませんか?

・入力画面(test1.jsp)のHTMLソースの確認
・test2.jspを適当に書き換えてみて(ログ出力など)その変更が反映されるかどうかの確認

をしてみてください。
Hoo
会議室デビュー日: 2004/09/24
投稿数: 4
投稿日時: 2004-09-27 16:31
↑キャッシュをクリアしたり、ソースの確認等、いろいろ試してみましたが、
test1.jspからtest3.jspが実行されているかのように動いています。
何が原因なのでしょうか?
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-27 16:51
引用:

Hooさんの書き込み (2004-09-27 16:31) より:
↑キャッシュをクリアしたり、ソースの確認等、いろいろ試してみましたが、
test1.jspからtest3.jspが実行されているかのように動いています。
何が原因なのでしょうか?


で、HTMLソースを確認した結果どうだったのでしょうか。フォームのアクションにはtest3.jsp
が指定されていたのですか? アプリケーションサーバの種類など何も書いてないのですが、
Tomcatであれば、Tomcatのインストールディレクトリの下のworkディレクトリを削除して
再起動してみたらどうなるでしょうか。
Hoo
会議室デビュー日: 2004/09/24
投稿数: 4
投稿日時: 2004-09-27 17:22
HTMLのソース確認ですが、test1.jspはtest2.jspを呼び出すようになっていました。

test2.jspを下記のように修正したところ、test2.jspでの表示は正常に、test3.jsp(forward分)での表示はformNoはnullとなりました。

  テスト<INPUT size="3" type="text" name="name1" value="<%= test %>">
  formNo<INPUT size="3" type="text" name="name2" value="<%= formNo %>">

  <jsp:forward page="<%= act_url %>">
  <jsp:param name="formNo" value="<%= formNo %>" />
<jsp:param name="test" value="<%= test %>" />
</jsp:forward>

アプリケーションサーバはTOMCATです。情報が不足ですいません。
アプリケーションサーバの変更は、現在できない状況ですので、
確認次第連絡させて頂きます。申し訳ありません。
1

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