質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Q&A

解決済

2回答

1912閲覧

actionがうまく作動しなくなりました

kentros511

総合スコア122

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

0グッド

0クリップ

投稿2015/12/15 01:07

編集2015/12/15 01:17

環境 eclipse4.3 windows8.1 local環境でのMYSQL

従来 エラーが表示されるようになったが条件を無視し常にエラーメッセージが表示されている
改善するためにif文を追加

結果 500サーブレットが作動しませんメッセージ

理想 条件のときのみエラーを表示しactionのエラーをなくしたい

Action

1public class MailAction extends LookupDispatchAction { 2 3 protected Map<String,String> getKeyMethodMap() { 4 // キーとメソッドの対応を登録する 5 Map<String,String> map = new HashMap<String,String>(); 6 map.put("firster","lookupDispatchA"); 7 map.put("forgets","lookupDispatchB"); 8 return map; 9 } 10 11 12 13 private String dbName="staff"; 14 private String user = "root"; 15 private String pass = ""; 16 17 18 19 20 21 public ActionForward lookupDispatchA (ActionMapping mapping 22 ,ActionForm form 23 ,HttpServletRequest request 24 ,HttpServletResponse response) throws Exception { 25 request.setCharacterEncoding("UTF-8"); 26 27 Mailform frm = (Mailform)form; 28 String name = frm.getName(); 29 String address = frm.getAddress(); 30 String pwd = frm.getPwd(); 31 32 System.out.println(pwd); 33 34 35 36 //actionMessaages作成 37 ActionMessages errbox = new ActionMessages(); 38 ActionMessage errmsg1 = new ActionMessage("errors.empty","未入力"); 39 ActionMessage errmsg2 = new ActionMessage("errors.email","半角入力"); 40 ActionMessage errmsg3= new ActionMessage("errors.already","既出"); 41 42 43 if( name == null || address == null) {/*未入力*/ 44 errbox.add("empty",errmsg1); 45 saveErrors(request,errbox); 46 return mapping.findForward("back"); 47 }/*ActionMessage(string、String>はダメ*/ 48 49 50 /*半角入力*/ 51 if (address != "[\\d[a-zA-Z]*]+@[\\d[a-zA-Z]*]"){ 52 53 errbox.add("half",errmsg2); 54 saveErrors(request,errbox); 55 return mapping.findForward("back"); 56 } 57 58 /*configのsource取得*/ 59 60 DBchinuki db = new DBchinuki(); 61 db.getDBConnection(dbName,user,pass); 62 int connect = db.getDBConnection(dbName,user,pass); 63 if(connect == 0) { 64 return mapping.findForward("miss"); 65 } else if (connect == 1) { 66 return mapping.findForward("issue"); 67 } 68 69 70 String diagno = db.seldb(address);/*登録者かどうか検索*/ 71 System.out.println("/**********************************/"+diagno); 72 73 /*完了済み*/ 74 if(address == diagno) { 75 errbox.add("already",errmsg3); 76 77 saveErrors(request,errbox); 78 return mapping.findForward("issue"); 79 80 } 81 82 db.insdb(name, address,pwd);/*登録*/ 83 db.throwDBConnection(); /*切断*/ 84 SendMail sm = new SendMail(address, pwd); 85 sm.doMail(); 86 int TS = sm.doMail(); 87 if(TS == 0) { 88 return mapping.findForward("miss"); 89 } else if (TS == 1) { 90 return mapping.findForward("issue"); 91 } 92 93 94 95 96 } 97 98public ActionForward lookupDispatchB(ActionMapping mapping, /*忘れた方*/ 99ActionForm form, 100HttpServletRequest request, 101HttpServletResponse response) throws Exception { 102 Mailform frm = (Mailform)form; 103 String address = frm.getAddress(); 104 String address1 = frm.getAddress1(); 105 String pwd = frm.getPwd(); 106 107 DBchinuki db = new DBchinuki(); 108 String diagno = db.seldb(address);/*登録者か確認*/ 109 110 111 112 //actionMessaages作成 113 ActionMessages errbox = new ActionMessages(); 114 ActionMessage errmsg1 = new ActionMessage("errors.empty","未入力"); 115 ActionMessage errmsg2 = new ActionMessage("errors.email","半角入力"); 116 ActionMessage errmsg4 = new ActionMessage("errors.unregist","未登録"); 117 118 if(address1 == null ) {/*未入力*/ 119 errbox.add("empty",errmsg1); 120 saveErrors(request,errbox); 121 return mapping.findForward("back"); 122 }/*ActionMessage(string、String>はダメ*/ 123 124 /*半角入力*/ 125 if (address1 != "[\\d[a-zA-Z]*]+@[\\d[a-zA-Z]*]"){ 126 errbox.add("half",errmsg2); 127 saveErrors(request,errbox); 128 return mapping.findForward("back"); 129 130 } 131 132 133 db.getDBConnection(dbName,user,pass); 134int connect = db.getDBConnection(dbName,user,pass); 135if(connect == 0) { 136 return mapping.findForward("miss"); 137} else if (connect == 1) { 138 return mapping.findForward("issue"); 139} 140 141 142 143 144 145 146 /*jquery変数pwd受け渡し*/ 147 148 149 db.updb(pwd,address1);/*更新 addressは条件*/ 150 151 152 153 /*未登録*/ 154 if(address1 != diagno) 155 { 156 errbox.add("unregist",errmsg4); 157 158 saveErrors(request,errbox); 159 return mapping.findForward("back"); 160 161 } 162 163 db.throwDBConnection(); /*切断*/ 164 /*configのsource取得*/ 165 SendMail sm = new SendMail(address1, pwd); 166 int TS = sm.doMail(); 167 if(TS == 0) { 168 return mapping.findForward("miss"); 169 } else if (TS == 1) { 170 return mapping.findForward("issue"); 171 } 172} 173} 174 175 176 177 178 179**足りないとじ{}はpublic class MailAction extends LookupDispatchAction {の とじ} 180** 181lookupdispatchBのとじ{}のしたに記述すると 182``新しい`エラー箇所はLookup dispatchA,Bの 183public ActionForward lookupDispatchB(ActionMapping mapping, /*忘れた方*/ 184ActionForm form, 185HttpServletRequest request, 186HttpServletResponse response) throws Exception { 187

actionを正常に動かすにはどのように記述したらよろしいでしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

括弧の数は一致しているように見えます。
ActionForwardを戻す必要がありそうですが、if文でカバーしきれてないからではないですか?

if(TS == 0) { return mapping.findForward("miss"); } else if (TS == 1) { return mapping.findForward("issue"); }

投稿2015/12/15 01:43

編集2015/12/15 02:01
fortune0424

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kentros511

2015/12/15 01:56

カバーしきれてないってどういうことですか
kentros511

2015/12/15 02:08

成功は1 失敗は0 成功は発行ページ 失敗はエラーページに飛ぶようにさせたいです 発行issue エラーmiss
fortune0424

2015/12/15 02:12

変数TSに0と1、どちらも入らなかったら戻り値が返せなくなってしまいますよね。 そのパターンが足りていないという事です。
kentros511

2015/12/15 02:18

どのように変えたらいいんでしょうか i
guest

0

エラーの位置はわかりました

投稿2015/12/15 02:58

kentros511

総合スコア122

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問