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

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

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

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

Struts

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

Q&A

解決済

1回答

1532閲覧

メールが届かなくなりました

kentros511

総合スコア122

Java

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

Struts

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

0グッド

0クリップ

投稿2015/12/15 04:44

編集2015/12/15 05:08

Action

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

添削とアドバイスお願いします

DBに接続してメールが届くように戻したいです
さらにエラーメッセージも条件の時のみ表示させたいです

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

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

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

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

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

guest

回答1

0

ベストアンサー

処理の途中にも関わらずActionForwardを返している為、
到達不能エラーが発生しています。

メソッドが失敗?した時だけ、ActionForwardを返すようにコードを書き変えればいいかと。

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

投稿2015/12/15 05:20

fortune0424

総合スコア28

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

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

kentros511

2015/12/15 05:39

そうですよね 質問してから気づきなおしましたが またとじ{}の数が合わなくなりました
kentros511

2015/12/15 05:39

いつも回答してくれて感謝してます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問