Struts2で日本語を定義したメッセージファイルを作成する方法

このQ&Aのポイント
  • Struts2を使用して日本語を定義したメッセージファイルを作成する方法を説明します。
  • eclipseやJ2SDK、Tomcatを使用して環境を構築し、struts.xmlやJSPのヘッダ部の記述方法について解説します。
  • メッセージファイルをUnicodeでエンコードする際に発生する表示の問題や、eclipse上での編集可能性についても触れます。
回答を見る
  • ベストアンサー

Struts2で日本語を定義したメッセージファイルを作成したいです。

Struts2で日本語を定義したメッセージファイルを作成したいです。 以下の環境でWebアプリケーションを作成しようとしています。 eclipse 3.4 J2SDK 1.6 Tomcat 6.0 Struts 2.0.14 struts.xmlには <constant name="struts.custom.i18n.resources" value="MessageResources" /> <constant name="struts.i18n.encoding" value="Windows-31J" /> と記述しています。 JSPのヘッダ部は <%@ page contentType="text/html; charset=Windows-31J" %> <%@ page pageEncoding="Windows-31J" %> <s:property value="attention"/> と記述しています。(一部抜粋) メッセージファイル(MessageResources.properties)は message.attention=テスト と記述しいています。 "native2ascii"コマンドを使ってメッセージファイルをUnicodeでエンコードしてみました。 eclipse上でエンコードしたメッセージファイルを開くと 「\u30c6\u30b9\u30c8」と表示されてしまいますが JSPには正しく「テスト」と表示されました。 eclipse上でエンコードしたメッセージファイルの編集を行うことは可能でしょうか?

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

プラグインがありますよ http://propedit.sourceforge.jp/eclipse/updates/

superss28
質問者

お礼

プラグインを入れてみたところ期待通りに表示されました。 ご回答ありがとうございました。

関連するQ&A

  • Struts2のファイルアップロードにて

    質問させて頂きます。 Struts2にてファイルアップロードの送信フォームを作成したところ Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location] とのエラーが発生してファイルをアップロードすることができませんでした。 ビルドパスはjarファイルを読み込むことでインポートしているのですが、 このエラー文が発生する原因はなんなのでしょうか。 -----------------jsp画面-------------- <s:form name="write" action="doUpload" method="POST" enctype="multipart/form-data"> <s:file name="upload" label="File"/> <s:submit value="アップロード" /> </s:form> ----------------サーブレット------------- public class FileUploadTest extends ActionSupport{ private File upload; private String uploadContentType; private String uploadFileName; private String fileCaption; public String execute() throws Exception { return SUCCESS; } ※各セッターとゲッターは省略 ----------------struts.xml---------------- <action name="doUpload" method="upload" class="DB.FileUploadTest"> <result name="true" >/uploadTest.jsp</result> <result name="error">/uploadForm.jsp</result> </action> と記述しております。 どうかエラー原因のご教授よろしくお願いします。

  • Java Struts メッセージリソースの使い方

    JAVA Strutsを使用 各種メッセージを外部ファイルで定義しようと考えています。 Strutsではメッセージ・リソースファイルというものが存在するらしく、それを使用するのが妥当のようです。 http://www.javaroad.jp/opensource/js_struts5.htm しかしここではjsp側のbean:writeタグで表示する方法しか書いておりません。 メッセージをポップアップで表示させようと思っているのですが、どのようにすれば実現できるでしょうか。 .jsp-------- <script lauguage="JavaScript"> function checkErr(){ var msg = document.forms[0].err.value; if(msg != ""){ alert(msg); } document.forms[0].err.value = ""; } </script> Action.java------------ if(!Error.IsNum(id) || !Error.IsNum(pass)){ //ここでリソースファイルから文字列を取得したい msg = ""; logFrm.setErr(msg); return mapping.findForward("loginTop"); }

    • ベストアンサー
    • Java
  • strutsでフレームの分割ができません。

    strutsで、 http://struts.wasureppoi.com/taglib/03_frame.html を見ながらフレームの分割を下記のように行おうとしていますが、エラーが表示されます。 ソース ---- <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-nested" prefix="nested" %> <html:html> <head> <title>テスト</title> </head> <frameset cols="30%,*"> <html:frame page="l.jsp"/> <html:frame page="r.jsp"/> </frameset> </html:html> ---- エラーメッセージ ---- HTTPステータス 500 - type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: Exception in JSP: /index08.jsp:13 10: <title>テスト</title> 11: </head> 12: <frameset cols="30%,*"> 13: <html:frame page="l.jsp"/> 14: <html:frame page="r.jsp"/> 15: </frameset> 16: </html:html> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451) 原因 java.lang.NullPointerException org.apache.struts.taglib.TagUtils.pageURL(TagUtils.java:1070) ---- 別のページを見ると、 <html:frame page="l.jsp" name="hidari"/> とname属性を宣言しているようですが、同様に記述してみると、スコープが無いとエラーが出てしまいます。 環境は、  WindowsXP  Eclipse3.3  Tomcat5.5  struts-1.3.8  JDK1.5 です。 どのように記述すべきか、検索してもヒットしなかったので、恥かしながらここで質問させて頂く事にしました。 どのように直すべきか、分かる方がいらっしゃいましたらご教授頂けないでしょうか?  また、オススメのStrutsの本がありましたら、こちらも教えて頂けたら幸いです。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • Struts2 共通プロパティファイルの外部参照方

    現在、Struts2を勉強中の者です。 作成プロジェクトをwarにした際、「commons.properties」ファイルをwar外に配置しておいて、変数の変更を簡単にしたいと考えています。現状はStruts.xmlと同一フォルダ内にいるため正しく読み込めているのですが、どのように設定したら実現できるのか、ご存知の方いましたらご回答をお願い致します。 Struts.xml <!-- アプリケーション共通プロパティファイル名。拡張子は不要。 --> <constant name="struts.custom.i18n.resources" value="commons" /> 不明点などありましたらご質問をお願い致します。

  • struts.jarファイルについて

    Struts(フレームワーク)を使用してWebアプリケーションの作成をしておりますが、 作成したソースファイルをコンパイルした際に以下のErrorとなります。 --------------------------------------------------------- C:\Users\workspace\Sample\WEB-INF\classes>javac Page1Action.java Page1Action.java:5: パッケージ org.apache.struts.action は存在しません。 import org.apache.struts.action.Action;                      ^ --------------------------------------------------------- Errorメッセージについて調べたところ、struts.jarをクラスパスに指定していないことが原因との情報を見つけました。 私の環境にはstruts.jarファイルが見つからないのですが、このファイルはstrutsをインストールすれば必ず存在するファイルなのでしょうか? また、上記Errorの発生原因についてですが、struts.jarをクラスパスに指定していないことによるものなのでしょうか? どなたかご存知でしたらご教授願います。

    • ベストアンサー
    • Java
  • ActionClassを使用したJSPについて

    動作環境 OS:WindowsXP Home Edition SP3 Browser:IE8 OpenSoftWare:Tomcat6.0.29 Framework:Struts2.2.1 Tool:Eclipse3.2.0 上記の環境で開発をしたいと思っております。 ですが、予想結果が得られません。 Tomcat上のエラーは出ていません。 単純にjspファイルからjavaファイルアクションクラスを呼び出すだけです。 ご指導の程、よろしくお願いします。 ■実行パス:Tomcatインストールパス\webapps\struts2.0直下 1.A.java(\WEB-INF\classes\a\b直下) package a.b; import com.opensymphony.xwork2.ActionSupport; public class A extends ActionSupport { private static final long serialVersionUID = 1L; public String execute() throws Exception { setMessage("Hello World!"); return SUCCESS; } private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } 2.A.jsp <%@ page contentType="text/html; charset=Shift-JIS" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>A</title> </head> <body> Actionからのメッセージは、「 <s:property value="message"/> 」です。 </body> </html> 3.struts.xml(\WEB-INF\classes直下) <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="a.b" extends="struts-default"> <action name="A" class="a.b.A"> <result>/A.jsp</result> </action> </package> </struts> 4.web.xml(\WEB-INF直下) <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts Blank</display-name> <filter> <filter-name>struts</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 5.IE8上の実行結果 1.現状(※かぎ括弧に1バイトのスペースが入っている。) Actionからのメッセージは、「 」です。 2.予想 Actionからのメッセージは、「Hello World!」です。

  • EclipseでJavaScriptファイルの日本語保存エラー

    ご質問させて頂きます. Eclipseを使ってServlet+JSP+Benasのプログラムを作っています. JavaScriptのファイル(*.js)をEclipseで開いて,日本語のコメント文 //コメント を書いて保存すると 保管の問題 保管を完了できませんでした. 理由: 一部の文字は"ISO-8859-1"文字エンコードを使用してマップすることはできません. エンコードを変更するか,"ISO-8859-1"文字エンコードによってサポートされていない文字を除外してください. と言うエラーメッセージが表示されます. 設定の問題なのでしょうか?保存できる方法がありましたらご助言お願いいたします.

    • ベストアンサー
    • Java
  • struts2 ファイル アップロード

    今、ファイルのアップロードのプログラム開発を行なっておりますが アップロードのボタンを押すとHTTPステータス500のエラーで実行ができません。 詳しい方、間違っている箇所のご指摘宜しくお願い致します。 プログラムは以下の通りです。(JAVAは一部削除しています) (JSP) <%@ page contentType="text/html; charset=UTF-8" %> <%@ page pageEncoding="Windows-31J" %> <%@taglib prefix="s" uri="/struts-tags" %> <%@taglib prefix="original" uri="/original-tags" %> <%@taglib prefix="originalJK" uri="/original-JK-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> %@ include file="html-head.jsp" %> <script type="text/javascript"> </script> </head> <body onload> <%@ include file="HeaderTitle.jsp" %> <div class="navigation" align="right"> <originalJK:CommonLinkTag mode="2" /><br> </div> <br> <s:form enctype="multipart/form-data"> <table width="100%"> <tr> <td> <INPUT type=file name="upload"> </td> </tr> </table> <table width="100%"> <tr> <td> <s:submit value="EXCELアップロード" cssClass="form_button" action="tEST11A" method="doUpload" onclick="return confirm('アップロードしてよろしいですか。');"/> </td> </tr> </table> </s:form> </body> <html> (JAVA) @ParentPackage(value = "Original") @Results({ @Result(name = "success", value = "jsp/TEST11A.jsp"), @Result(name = "failure", value = "jsp/TEST11A.jsp") }) public class TEST11AAction extends SuperAction { private String aBtnUpdateMsg = ""; private File upload; private String uploadContentType; private String uploadFileName; public String execute() throws Exception { return "success"; } public String doUpload() throws Exception { try { // DBコネクションオープン vDb.open(); TEST11ADao vDao = new TEST11ADao(vDb); int vCount = 0; //データ存在チェック vCount = vDao.dbCntLine(); FileInputStream fis = new FileInputStream(upload); POIFSFileSystem fs = new POIFSFileSystem(fis); // ワークブック・オブジェクトの取得 HSSFWorkbook wb = new HSSFWorkbook(fs); // 総ワークシート数の取得 int sheets = wb.getNumberOfSheets(); // ワークシートごとに、データを取得 int idx = 0; for (int sheetIdx = 0; sheetIdx < sheets; sheetIdx++ ) { //コミット vDb.commit(); } finally { // DBクローズ vDb.close(); } return "success"; } public File getUpload() { return upload; } public void setUpload(File upload) { this.upload = upload; } public String getUploadContentType() { return uploadContentType; } public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType; } public String getUploadFileName() { return uploadFileName; } public void setUploadFileName(String uploadFileName) { this.uploadFileName = uploadFileName; }

  • 教えてください:strutsのhtml:formタグがjspに展開された状態の、actionの値について

    java初心者です。 どなたか教えていただけませんでしょうか? JAVAのstrutsを使用してソフトを作成しています。 JSPに記載した「<html:form action="/authentication" focus="id"> 」 との記述が、WEB(IE)に展開されたソースを見ると、「<form name="AuthenticationForm" method="post" action="/strutsTest/authentication">」 に変換されています。 action="/authentication"と記述しているにもかかわらず、 action="/strutsTest/authentication"と展開されているのですが /strutsTestが自動的に付与されているのは、なぜなのでしょうか? なにか設定するところがあるのでしょうか? ※struts-config.xmlに指定したpathと一致しない為、404NotFoundになるので自動設定しないように変更したいのです。 ちなみに環境は struts-1.3.10 Apache Tomcat 6.0.14 Server EclipsVersion: 3.4.2 pakage名:struts プロジェクト名:strutsTest struts-config.xmlの設定   <form-beans> <form-bean name="AuthenticationForm" type="struts.AuthenticationForm"/> </form-beans> <global-exceptions> </global-exceptions> <global-forwards> <forward name="fail" path="/login.jsp"/> </global-forwards> <action-mappings> <action path="/authentication" name="AuthenticationForm" type="struts.AuthenticationAction" scope="session"> <forward name="success" path="/welcome.jsp"/> <forward name="fail" path="/login.jsp"/> </action> </action-mappings> login.jsp <%@ page contentType="text/html; charset=Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"/> <title>ログイン画面</title> </head> <body> <html:errors/> ID・パスワードを入力してください。 <html:form action="/authentication" focus="id"> <html:text property="id" size="16"/> <br> <html:password property="pas" size="16" redisplay="false" /> <br> <html:submit property="submit" value="送信"/> <html:reset value="リセット"/> </html:form> </body> </html:html> 動作順は、login.jsp => AuthenticationAction.class => welcome.jsp です。 よろしくお願いします。

  • Struts propertyファイルについての質問

    Struts propertyファイルについての質問 いつもお世話になっております。 今回ご質問させて頂きたいのはpropertyファイルについてです。 知識不足な点が否めませんが、ご質問させて頂きます。 propertyファイルを作成する際に自分は Message.Resources_ja.sj としてこちらに日本語入力でmessageを記述していきます。 # -- 検索 -- search.title=不動産協会 search.subete=全て 上記のような感じです。 これをnetive2asciiを使い以下のように変換しています。 native2ascii Message.Resources_ja.sj Message.Resources_ja.properties そうするとpropertyファイルが出来る訳ですが、これを eclipseの自分の環境で見ると以下のようになります。 # -- 讀懃エ「 -- search.title=?シウ?シー荳榊虚逕」蜊比シ? search.subete=蜈ィ縺ヲ これの他に同様のファイルをeclipseでアプリケーションから開く→テキストエディターを選択し 開くと以下のように表示されます。 # -- \u8b80\u61c3\uff74\uff62 -- search.title=\ufffd\uff7c\uff73\ufffd\uff7c\uff70\u8373\u698a\u865a\u9015\uff63\u870a\u6bd4\uff7c\ufffd search.subete=\u8708\uff68\u7e3a\uff66 確認したい点としましては (1)上記の順での作業は正しいのか (2)eclepseのデフォルトエディタで開いた場合に、文字化け?しているのは何故か (そもそも変換の仕方が違う?) (3)自分の環境だけなのかわかりませんが、この文字化けしてるpropertyファイルを変更しようとすると 以下のエラーが発生するのは何故なのか 保管が失敗しました java.lang.NoSuchFieldError 上記3点を教えて頂ければ幸いです。 宜しくお願い致します。

    • ベストアンサー
    • Java