- - PR -
画像がクリックされたらサーブレットを実行
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2002-08-30 09:09
画像がクリックされたらサーブレットを実行したいのですが以下のようにハイパーリンクで
サーブレットを指定することはできないのでしょうか? (以下のようにするとページが見つからないとエラーが出ました) <A HREF="LogonServlet"><IMG SRC="image/login.gif" ALT="ログオン"></A> ※Tomcat3.2.1を使用しています |
|
投稿日時: 2002-08-30 15:25
LogonServletを直接開いて動作することを確認していますか?
Aタグの中のhrefの指定先は正しいですか?(パッと見では間違っているような気がします) > サーブレットを指定することはできないのでしょうか? ・・・なぜ『できない』と思われるのかが疑問です。 |
|
投稿日時: 2002-08-30 15:50
>LogonServletを直接開いて動作することを確認していますか?
>Aタグの中のhrefの指定先は正しいですか?(パッと見では間違っているような気がします) 以前はボタンで処理していたので動作は確認しています <FORM NAME=FORM_xxx METHOD=POST ACTION=LogonServlet> |
|
投稿日時: 2002-08-30 17:46
LoginServletはHttpServletのサブクラスですか?
DoGetはオーバーライドしてますか? フォームはメソッドがPOSTなので、フォームから呼ばれた場合は LoginServlet#DoPostが実行されますが、アンカーから呼ばれた 場合はGETになるので、DoGetをオーバライドしないと、 BAD_REQUEST (405エラー)になりますよ。 |
|
投稿日時: 2002-08-30 18:47
初めて投稿します。よろしくお願いします。
情報が少ないので,なんともいえませんが, おそらく,hrefのpathが違っているのではないかと思います。 出るエラーは404エラーですか? でも、submitした場合は、問題ないんですよね? それならやはり、t-wataさんがおっしゃっているように、doGet()でしょうか。 エラーコードも教えていただけると,皆さんも推測しやすいのではないでしょうか。 |
|
投稿日時: 2002-09-02 13:13
どうもありがとうございます。
DoPostをオーバーライドしていたものをDoGetへ変更すれば実行されました もうひとつ教えてほしいのですが ハイパーリンクでサーブレットを呼び出した場合にフォームの情報をサーブレットで取得 しても値がNULLになっています(ボタンでsubmitiした場合は値が入っているのですが) JSPのソース(抜粋) <FORM NAME=FORM_SELECT> <TEXTAREA NAME="COMMENT" ROWS="8" COLS="10" MAXLENGTH="50"></TEXTAREA> <A HREF="ScheduleServlet"> <IMG SRC="image/reg.gif" ALT="登録" NAME="reg"></A> </FORM> サーブレットのソース(抜粋) public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // 必要なクラスとBeanの生成 HttpSession session = request.getSession(true); ScheduleBeans schedule = (ScheduleBeans)session.getAttribute("schedule"); if (schedule == null) { // まだ生成されていない場合には、新たに作る schedule = new ScheduleBeans(); } schedule.setScheduleComment(request.getParameter("COMMENT")); フォームでデータを入れてもrequest.getParameter("COMMENT")の値がNULLになります 何かわかるようでしたらお教え願います |
|
投稿日時: 2002-09-02 13:29
<INPUT TYPE="IMAGE" SRC="image/reg.gif" ALT="登録" NAME="reg">
を<A>〜<IMG>〜</A>タグと入れ替えれば良いかと思います。 その際に<FORM>タグに METHOD="GET" ACTION="ScheduleServlet" も追加してください。 理由は・・・考えてみてください。 #主にJSP(というかHTML)側の問題だと思いますが。 [ メッセージ編集済み 編集者: BBC 編集日時 2002-09-02 13:42 ] [ メッセージ編集済み 編集者: BBC 編集日時 2002-09-02 13:45 ] |
|
投稿日時: 2002-09-02 13:33
FORMに入力されたデータは、submitされたときに、FORMタグ内のaction属性で
指定されたURIに送信されます。 ですので,単純に<A href="">タグでは、FORMデータは送信されません。 JavaScriptを使うか,URLのクエリーで送るのがよいのではないでしょうか? |
