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

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

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

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

Struts

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

Q&A

解決済

1回答

4741閲覧

メッセージリソースの日本語化ができない

add-1914

総合スコア16

Java

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

Struts

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

0グッド

0クリップ

投稿2018/02/20 14:41

編集2018/02/22 12:43

いつもお世話になっております。Java,Struts初心者です。
現在勉強中のStruts1の件でお聞きしたいことがございます。

現在bean:message やバリデータチェック時での日本語エラーメッセージの表示がうまくできず困っております。お力を貸していただけないでしょうか。

<エラー発生内容>
1:struts.config.xml の
<message-resources parameter = "ApplicationResorce"/>
に作成したApplicationResourceを設定して、サーバー上で動かしたところ
文字化けが発生しApplicationResouceが見つかりませんというメッセージが実行時に表示されました。
以下 設定時のソースコードです。

struts.config.xml

1<?xml version="1.0" encoding="Shift_JIS" ?> 2<!DOCTYPE struts-config PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" 4 "http://struts.apache.org/dtds/struts-config_1_3.dtd"> 5<struts-config> 6 <!-- ========================= Form Bean Definitions --> 7 <form-beans> 8 <form-bean name="HelloForm" type="hello.form.HelloForm" /> 9 </form-beans> 10 <!-- ========================= Global Exception Definitions --> 11 <global-exceptions> 12 13 </global-exceptions> 14 <!-- ========================= Global Forward Definitions --> 15 <global-forwards> 16 </global-forwards> 17 <!-- ========================= Action Mapping Definitions --> 18 <action-mappings> 19 <action 20 attribute ="HelloForm" 21 input ="/jsp/who.jsp" 22 name ="HelloForm" 23 path ="/hello" 24 type ="hello.HelloAction" 25 scope ="session" 26 validate ="true"> 27 <forward name="success" path="/jsp/user.jsp" /> 28 </action> 29 </action-mappings> 30 <!-- ========================== Message Resources Definitions --> 31 <message-resources parameter=""></message-resources> 32 <!-- ========================== Plug Ins Configuration --> 33 <!-- ========================== Tiles plugin --> 34 <!-- ========================== Validator plugin --> 35</struts-config>

2:native2asciiコマンドを利用し
native2ascii ApplicationResorce_ja.properties ApplicationResource.properties
を実行したところ 
java.lang.Excptionが発生して
『ApplicationResource_ja.propertiesを読み込めませんでした』
のエラーがでてしまいます。

2点お聞きしたいのですが、
1.メッセージリソース設定時にstruts.config.xml以外になにか設定値を書くことはございますでしょうか。(しらべた際にはどのサイトにもなかったと思います。)
2.メッセージリソースの日本語化をする際に注意しなければならないことなどはございますでしょうか。

大変お手数ですがご教示いただければ幸いです。
よろしくお願いいたします。

環境
struts1.3.10
Tomcat6.0
java 6

遅くなりまして申し訳ございません
以下設定ファイルになります。

struts

1コード 2<?xml version="1.0" encoding="Shift_JIS" ?> 3<!DOCTYPE struts-config PUBLIC 4 "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" 5 "http://struts.apache.org/dtds/struts-config_1_3.dtd"> 6<struts-config> 7 <!-- ========================= Form Bean Definitions --> 8 <form-beans> 9 <form-bean name="HelloForm" type="hello.form.HelloForm" /> 10 </form-beans> 11 <!-- ========================= Global Exception Definitions --> 12 <global-exceptions> 13 14 </global-exceptions> 15 <!-- ========================= Global Forward Definitions --> 16 <global-forwards> 17 </global-forwards> 18 <!-- ========================= Action Mapping Definitions --> 19 <action-mappings> 20 <!-- 入力画面 --> 21 <action 22 attribute ="HelloForm" 23 input ="/jsp/who.jsp" 24 name ="HelloForm" 25 path ="/InputConfirmAction" 26 type ="hello.InputConfirmAction" 27 scope ="session" 28 validate ="true"> 29 <forward name="success" path="/jsp/user.jsp"/> 30 <forward name="errors" path="/jsp/who.jsp"/> 31 </action> 32 <!-- 確認画面 --> 33 <action 34 input ="/jsp/user.jsp" 35 name ="HelloForm" 36 path ="/helloAction" 37 type ="hello.HelloAction" 38 scope ="session" 39 validate ="false"> 40 <forward name="success" path="/jsp/Thanks.jsp"/> 41 </action> 42 </action-mappings> 43 <!-- ========================== Message Resources Definitions --> 44 <message-resources parameter="/WEB=INF/ApplicationResouce_ja"></message-resources> 45 <!-- ========================== Plug Ins Configuration --> 46 <!-- ========================== Tiles plugin --> 47 <!-- ========================== Validator plugin --> 48 <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> 49 <set-property 50 property="pathnames" 51 value="/org/apache/struts/validator/validator-rules.xml, 52 /WEB-INF/validation.xml"/> 53 </plug-in> 54</struts-config> 55
type 例外レポート メッセージ An exception occurred processing JSP page /jsp/who.jsp at line 8 説明 The server encountered an internal error that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: An exception occurred processing JSP page /jsp/who.jsp at line 8 5: prefix="bean" %> 6: <html:html> 7: <head> 8: <title><bean:message key="survey"/></title> 9: </head> 10: <body> 11: <h1><bean:message key="PleaseSurvey"/></h1> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:525) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122) 原因 javax.servlet.ServletException: javax.servlet.jsp.JspException: キー "survey" に対応するメッセージが見つかりません org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:868) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:797) org.apache.jsp.jsp.who_jsp._jspService(who_jsp.java:99) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122) 原因 javax.servlet.jsp.JspException: キー "survey" に対応するメッセージが見つかりません org.apache.struts.taglib.bean.MessageTag.doStartTag(MessageTag.java:233) org.apache.jsp.jsp.who_jsp._jspx_meth_bean_005fmessage_005f0(who_jsp.java:170) org.apache.jsp.jsp.who_jsp._jspx_meth_html_005fhtml_005f0(who_jsp.java:123) org.apache.jsp.jsp.who_jsp._jspService(who_jsp.java:90) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)

やはり起動時にメッセージリソースファイルを読み込めず、file.setCharaterEncordingFilterでおちてしまいます。

よろしくお願いいたします。

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

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

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

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

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

unz.hori

2018/02/21 01:52

java.lang.Excptionが発生した際のスタックトレースを提示してください。
unz.hori

2018/02/21 02:14

1についてはApplicetion.propertiesはどこに配置しましたか?
add-1914

2018/02/21 23:06

遅くなりまして申し訳ございません。 WEB-INF 配下にstruts.config.xmlなどと共に配置しております。
add-1914

2018/02/21 23:07

申し訳ございませんまた帰宅時再度確認いたします。
unz.hori

2018/02/22 01:09

struts.config.xmlについては、設定内容が反映されたものをご提示ください
退会済みユーザー

退会済みユーザー

2018/02/22 12:54

案件かなにかで必要ならしょうがないけどそうじゃないなら EOLな 1.x 勉強する必要はないよ
add-1914

2018/02/22 13:01

ありがとうございます、案件でこれから使用するため現在勉強中です。Struts1の脆弱性やサービスの終了しているものというのは理解しているのですが・・(ただどこのあたりが脆弱性があるといわれているのかは正直わかっていません)
unz.hori

2018/02/22 13:04

propertiesファイルをクラスパスが通っているところへ配置してください
add-1914

2018/02/22 13:34

配置してみましたがやはり動いてくれず、サーバに接続した場合同上のエラーが発生いたします。
add-1914

2018/02/22 13:56

現状ですが、最初のページの<bean:message key="●●">の部分を削除したところきちんと作動するのでやはりリソースファイルが問題のようです。
退会済みユーザー

退会済みユーザー

2018/02/22 13:58

あなたの設定だと /WEB-INF/classess/WEB-INF/ApplicationResouce_ja.properties みたいなちぐはぐなパスにおかないといけないからね
unz.hori

2018/02/22 13:59

まだ、native2asciiでエラーは出てるんですか?
add-1914

2018/02/22 14:25

現在エラーはでなくなりました。
add-1914

2018/02/22 22:14

unz.horiさま、asahina1979さま 遅くなりまして申し訳ございません。native2asciiを用いて、変換を行った結果期待通りの結果を得ることができました。何度もご回答いただきまして誠にありがとうございました。あとは再度設定を見直しながら進めていきます。
guest

回答1

0

ベストアンサー

とりあえず案件の用なので回答をw

ディレクトリ構成

webapp ┠WEB-INF ┃┠lib ┃┃┠commons-lang-2.6.jar ┃┃: ┃┃ ┃┠classes ┃┃┠jp ┃┃┃┠example ┃┃┃: ┃┃┃ ┃┃┠ApplicationResouce_ja.properties ┃┃: ┃: ┃ ┠index.jsp :

struts-config.xml

<?xml version="1.0" encoding="Shift_JIS" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"> <struts-config> <!-- ========================= Form Bean Definitions --> <!-- ========================= Global Exception Definitions --> <!-- ========================= Global Forward Definitions --> <!-- ========================= Action Mapping Definitions --> <!-- ========================== Message Resources Definitions --> <message-resources parameter="ApplicationResouce"/> <!-- ========================== Plug Ins Configuration --> <!-- ========================== Tiles plugin --> <!-- ========================== Validator plugin --> </struts-config>

構成としてはこんなかんじで WEB-INF/classess 配下に置くことになります。
また <message-resources parameter="ApplicationResouce"/> と設定した場合
日本語圏からアクセスがあった場合(リクエスト時にlocale が送られてくる)

  1. ApplicationResouce_ja_JP.properties (日本語、日本国)
  2. ApplicationResouce_ja.properties (日本語)
  3. ApplicationResouce.properties (標準)

となり 英語圏(イギリス)からの場合

  1. ApplicationResouce_en_UK.properties (英語、英国)
  2. ApplicationResouce_en.properties (英語)
  3. ApplicationResouce.properties (標準)

となります。

参考としてはここら辺がいいかも
http://www.techscore.com/tech/Java/JavaSE/Utility/6-3/

投稿2018/02/22 13:13

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

add-1914

2018/02/22 15:07

ご回答ありがとうございます。 そもそものファイル構成が誤っていたのですね。 現在以下のような構成で行っているのですが よくわかっていないのですが、構成としてはよくないという認識でよろしいのでしょうか。 下記構成です SampleStrusts | |-javaリソース ||-src |||-hello ||||-Action.java |||||-form ||||||-ActionForm ||-WebContent |||-jsp ||||-jspファイル |||-META-INF |||-WEB-INF ||||-classes |||||-jp,ApplicationResource_ja.properties ||||-lib |||||-struts.jar ||||-各設定ファイル(struts-config,validator-rules,validation,web)xml
add-1914

2018/02/22 22:20

asahina1979さま ありがとうございます。ご指示いただいた、サイトなども確認しながら理解を深めていきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問