- - PR -
webアプリケーションのURLセット方法について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-01-19 14:38
みなさま、はじめまして。
現在Tomcat/5.0.16を使用したユーザー管理用のWebアプリを作成しております。 ■環境 Windows2000 Tomcat/5.0.16 Eclipse 3.1.1 webアプリ名:EmpInfoManageSystem 下記の手順で処理を行おうとしているのですが、 検索結果画面から削除処理を呼び出した所、 何故か検索処理(SerchUser.java)が実行されてしまい 削除処理の呼び出しを行うことができません。 検索画面(EmpSerch.jsp) 時点でのURL(/EmpInfoManageSystem/EmpSerch) ↓ 検索処理(SerchUser.java) ↓ 検索結果画面(serchUserResult.jsp) 時点でのURL(/EmpInfoManageSystem/SerchUser) ↓ 対象レコードの削除処理(DeleteUser.java) なお、 JSP→JAVA への遷移は、 フォームのアクションに設定されたURLにPOST形式でsubmitし、 JAVA→JSP への遷移は、 String target = "/SerchUserResult.jsp"; ServletContext context = getServletContext(); RequestDispatcher rd = context.getRequestDispatcher( target ); rd.forward( req,res); という形式で遷移しています。 URLを見たところ、検索結果画面(serchUserResult.jsp)時点でのURLが /EmpInfoManageSystem/SerchUser となっているので検索結果画面の表示時URLがおかしいか?と考えたのですが、 JSP毎にURLをセットする方法というのがわからず、困っております。 どなたか知恵をお借りできませんでしょうか? よろしくお願いいたします。 | ||||
|
投稿日時: 2006-01-19 15:21
検索画面から削除処理の呼び出しは、どのように行っているのでしょう?
具体的に、お願いします。 | ||||
|
投稿日時: 2006-01-19 15:47
早速のご返信ありがとうございます。
> 検索画面から削除処理の呼び出しは、どのように行っているのでしょう? >具体的に、お願いします。 検索結果画面からの呼び出しは、 削除ボタン(button)押下時にjavascriptの関数を呼び、method、actionを指定して submitしております。 下記ソースから抜き出し↓ <input type="button" name="btnDelete" value="削除" onclick="fncDelete()"> ↓(押下時) function fncDelete() { if(window.confirm("よろしいですか?")) { document.frm1.method = "POST"; document.frm1.Action = "/DeleteUser"; document.frm1.submit(); } } 一応、下記にソースを記載致します。 ご確認よろしくお願いいたします。 ========================ここから========================== <%@ page language="java" contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS" %> <%@ page import="Db.SerchUserProc" %> <%@ page import="java.util.Vector" %> <% // セッションを取得します</FONT> String auth = (String)session.getAttribute("auth"); SerchUserProc serchUserProc = (SerchUserProc)request.getAttribute( "serchUserResult" ); Vector vec = (Vector)serchUserProc.getVec(); %> <html> <head> <title> 社員検索結果画面 </title> <script> <!-- function fncDelete() { if(window.confirm("よろしいですか?")) { document.frm1.method = "POST"; document.frm1.Action = "/DeleteUser"; document.frm1.submit(); } } function fncUpdate() { if(window.confirm("削除処理を行います。本当によろしいですか?")) { document.frm1.method = "POST"; document.frm1.Action = "/UpdateUser"; document.frm1.submit(); } } //--> </script> </head> <body> <center> <h1>社員検索結果画面</h1> </center> <br> <form name="frm1" method="post" action=""> <% //取得件数が0件の場合、「該当するデータがありません」と表示する。 if(vec.size() != 0){ %> <table border="1" align="center"> <tr> <% if(auth.equals("1")){ %> <td><input type="radio" value="" name="rdSample" disabled></td> <% } %> <td>社員コード</td> <td>入社日</td> <td>名前(姓名)</td> <td>性別</td> <td>生年月日</td> <td>部署</td> <td>役職</td> <td>メモ</td> </tr> <% for(int i=0; i<vec.size(); i++){ String tmpVecData = (String)vec.elementAt(i); String[] recData = tmpVecData.split(":"); %> <tr> <% if(auth.equals("1")){ //最初に取り出されたレコードのラジオボタンのみチェック済みにする。 if(i==0){ %> <td><input type="radio" value="<%=recData[0]%>" NAME="rdUserData" checked></td> <% }else{ %> <td><input type="radio" value="<%=recData[0]%>" NAME="rdUserData"></td> <% } } for (int j = 0; j < recData.length; j++) { %> <td><%=recData[j]%></td> <% } %> </tr> <% } %> </table> <p align="center"> <% if(auth.equals("1")){ %> <input type="button" name="btnUpdate" value="更新" onclick="fncUpdate()"> <input type="button" name="btnDelete" value="削除" onclick="fncDelete()"> <% } %> <input type="button" name="btnBack" value="戻る" onclick="history.back();"> </p> </form> </body> <% }else{ %> 該当するデータがありません。 </form> </body> <% } %> </html> | ||||
|
投稿日時: 2006-01-19 16:03
失礼しました。
javascript部分、ダイアログに出力する文章を誤りました。 正しい文章を記載します。 すみませんでした^^; しかし、目的の関数を呼び出すのを誤っているわけではありません。 一応補足です^^; 以上です。 <script> <!-- function fncDelete() { if(window.confirm("削除処理を行います。本当によろしいですか?")) { document.frm1.method = "POST"; document.frm1.Action = "/DeleteUser"; document.frm1.submit(); } } function fncUpdate() { if(window.confirm("よろしいですか?")) { document.frm1.method = "POST"; document.frm1.Action = "/UpdateUser"; document.frm1.submit(); } } //--> </script> | ||||
|
投稿日時: 2006-01-19 16:08
おそらく、削除処理のサーブレットは
http://hoge/EmpInfoManageSystem/DeleteUser あたりで呼び出すようにしているのでしょうが、
で本当に目的のサーブレットを呼び出せているかチェックしましょう。 | ||||
|
投稿日時: 2006-01-19 17:17
>引用:
>------------------------------------------------------------------------------->document.frm1.Action = "/DeleteUser"; >------------------------------------------------------------------------------->で本当に目的のサーブレットを呼び出せているかチェックしましょう。 その動作をほかのページからエラー覚悟で試してみたのですが、 目的のサーブレットを呼び出すことはできませんでした。 しかし、 document.frm1.Action = "/DeleteUser"; を ↑ document.frm1.action = "/DeleteUser"; ↑ と、ダメ元で Aをaに置き換えたところ、削除処理を呼び出し、実行が可能となりました。。 初歩的な問題なのにお手数をおかけして申し訳ありませんでした。; |
1