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

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

ただいまの
回答率

89.97%

dispatch actionがうまくいかなくて困ってます  

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,253

kentros511

score 70

サンプルコードを一部載せました

```JAVA
**コード ここから-- **

> public class MailAction extends  LookupDispatchAction {
     protected Map getKeyMethodMap() {
        // キーとメソッドの対応を登録する
        Map<String,String> map = new HashMap<String,String>();    
    map.put("firster","lookupDispatchA");
        map.put("forgets","lookupDispatchB");入力中の内容をテンプレートとして保存

        return map;
}



>     private String url="jdbc:mysql:localhost/####;
>     private String user = "root";
>     private String pass = "";


>     public ActionForward lookupDispatchA  (ActionMapping mapping
            ,ActionForm form
            ,HttpServletRequest request
            ,HttpServletResponse response) throws Exception {


>         Mailform frm = (Mailform)form;
        String name = frm.getName();
        String address = frm.getAddress();
         String pwd = frm.getPwd();


>         MailForm2 frm1 = (MailForm2)form;
>         String address1 = frm1.getAddress1();

>          //actionMessaages作成
        ActionMessages errbox = new ActionMessages();
        ActionMessage errmsg1 = new ActionMessage("errors.empty","未入力");
         ActionMessage errmsg2 = new ActionMessage("errors.email","半角入力");
        ActionMessage errmsg3= new ActionMessage("errors.already","既出");
        ActionMessage errmsg4 = new ActionMessage("errors.unregist","未登録");
> 
>         if( name == null || address == null) {/*未入力*/
        errbox.add("empty",errmsg1);}/*ActionMessage
     (string、String>はダメ*/

>         /*半角入力*/
         if (address != "[\\d[a-zA-Z]*]+@[\\d[a-zA-Z]*]"){
>             errbox.add("half",errmsg2);} 
> 
>          /*完了済み*/
         if(address == address1) {
             errbox.add("already",errmsg3); }
>          /*未登録*/
>          if(address1 !=address)
         {
             errbox.add("unregist",errmsg4); 
> 
> 
> 
>              saveErrors(request,errbox);
> 
>          }
>         /*configのsource取得*/
> 
>          DB****  db = new DB******();
>          db.getDBConnection(url,user,pass);
> 
>          db.seldb(address);/*登録者かどうか検索*/
>          db.insdb(name, address);/*登録*/
> 
> /*メール送信*/
> 
> 
>         try{/*start*/
>             //property
>             Properties prop = new Properties();
>             prop.setProperty("mail.smtp.host", "localhost");
>             //SMTPサーバーのセット
>             prop.setProperty("mail.smtp.port", "25");
> 
>             //メールセッションを確立
>             Session session = Session.getInstance(prop);
> 
>             //送信メッセージ
>             MimeMessage mimeMessage1 = new MimeMessage(session);
> 
> 
>             //ToAddressのセット
>             InternetAddress toAddress =new InternetAddress("***@****.co.jp","ゲストさん");
>             mimeMessage1.setRecipient(Message.RecipientType.TO,toAddress);
> 
>             //FRomAdressnoセット
>             InternetAddress fromAddress = new InternetAddress("***@****.co.jp","管理者");
>             mimeMessage1.setFrom(fromAddress);
> 
>             new String("Subject");
>             mimeMessage1.setSubject("パスワード発行","iso-2022-jp");/*件名*/
>             new String ("Text");
>             mimeMessage1.setText("あなたのパスワードは" + pwd  + "です","iso-2022-jp");
> 
>             //保存
>              mimeMessage1.saveChanges();
> 
> 
>             //メールの送信
>             Transport.send(mimeMessage1);
>         }catch(MessagingException e){/*すべての例外*/
>               e.printStackTrace();
>              return null;
>             }
> 
> 
>         /*configのsource取得*/
> 
> 
>         db.throwDBConnection();  /*切断*/
>         return mapping.findForward("first");
> 
> }
> 
> public ActionForward lookupDispatchB(ActionMapping mapping, 
> ※以下の処理はLookup dispatchAと同じ 
>  } ← **※ここでエラーが }が足らないと出ています**
> /*****java action code ここまで**

```config.xml

>  <form-bean name="Mailform" type="action.form.Mailfrom"></form-bean>
>      <form-bean name="Mailform1" type="action.form.MailForm2"></form-bean>
> 
>  <action
>      path="/MailAction"
>     type="action.MailAction"
>     name="Mailform"
>     input="passInput.jsp"
>     scope="request"
> 
>     validate="true"
>     parameter="dispatch">
>     <!-- 1 -->
>     <forward name="first" path="/jsp/passInput.jsp"/></action>
>     <action
>      path="/MailAction"
>     type="action.MailAction"
>     name="MailForm2"
>     input="passInput.jsp"
>     scope="request"
>     parameter="dispatch"
>     validate="true">
>     <!-- 2 -->
>     <forward name="forget" path="/jsp/passInput.jsp"/>
> 
> /****  config code ここまで*** `````````
``lang-jsp```

> ----1--
> <bean:write name="Mailform" property="address"/>
> 
> ---2--
> <bean:write name="MailForm2" property="address1"/>

Q.}がどこに必要なのか** dispatch というハンドラパラメーターがありません beanのform2が見当たらないとでて困っています**

```

エラーを解決したいです どのように直せばよいでしょうか

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    退会済みユーザー

    2015/12/07 14:35

    コード引用の最後にもバッククオート3個を付けてみてください。現状、コード引用部分が非常に見づらくなっています。

    キャンセル

  • liguofeng29

    2015/12/07 14:39

    コードを適切な形でアップしていただけますか。

    キャンセル

  • kentros511

    2015/12/07 15:03

    失礼しました  

    キャンセル

回答 1

check解決した方法

0

dispatchがありませんは formにdispatch パラメータを入れたら治りました

ほかの2つは引き続きお願いします

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 89.97%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる