10324


現在のソースは、下記ソースの通りです。  
メッセージリソースに登録しているものを、JSPのhtml:errorsタグで表示したいのですが、  
表示することが出来ていない状況です。

ソースの内容は間違えていないように思うので、  
MessageResources.propertiesの配置かなと考えていますが、  
classes/hello/resources内に配置しており、strutsの記載と合致しているように思います。

現在はこれといった原因が分かっておりません。  
解決方法の分かる方がいましたら、ご教授をお願いします。

[code]

    MessageResources.properties　ソース
    
    test = error1
    
[/code]

[code]

    struts-config  ソース
    ～
    
    <!-- ========================== Message Resources Definitions -->
      <message-resources parameter="hello.resources.MessageResources"/>
    
    ～
    
[/code]

[code]

    action.java ソース
    
    ActionErrors errors = new ActionErrors();
    
    ActionMessage msg = new ActionMessage("test");
    errors.add(ActionErrors.GLOBAL_MESSAGE, msg);
    
    addErrors(request, errors);
    
    return mapping.findForward("error");
    
[/code]

[code]

     JSPソース
    
    <%@ page contentType="text/html; charset=Shift-JIS" %>
    <%@ taglib uri="http://struts.apache.org/tags-html"
      prefix="html" %>
    <html:html>
      <head>
        <title>Who</title>
      </head>
    <p><html:errors /></p>
      <html:form action="/hello">
        <table border="0">
          <tr><td>
            あなたの名前は？<br>
            <html:text property="name" size="20" maxlength="30" />です。
          </td></tr>
          <tr><td>
            <html:submit value="OK" />
          </td></tr>
        </table>
      </html:form>
    </html:html>
    
[/code]


CC BY-SA 3.0
2015-05-18T08:49:59.470
10314
2015-05-18T11:55:24.950
7626
question
java jsp struts
MessageResources.propertiesの値を取得出来ません


実際に動作させてはいませんが、以下のようにすればよいはずです。

ActionErrorsクラスではなくActionMessagesクラスを使います。

[code]

    ActionErrors errors = new ActionErrors();
    
[/code]

を

[code]

    ActionMessages errors = new ActionMessages();
    
[/code]

に変えます。

次に`addErrors()`ではなく`saveErrors()`メソッドを呼ぶようにします。

[code]

    addErrors(request, errors);
    
[/code]

を

[code]

    saveErrors(request, errors);
    
[/code]

に変えます。

ActionErrorsクラスはvalidate関連で使わるのみで、Actionクラス内では利用しないようになっています。  
`addErrors()`メソッドはActionMessagesやActionErrorsといった複数のメッセージを一気に追加するメソッドです。ここではエラーメッセージを保存したいので、`saveErrors()`メソッドの方を使います。


CC BY-SA 3.0
2015-05-18T11:55:24.950
10324
2015-05-18T11:55:24.950
4464
10314
answer