ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Struts2等におけるプロパティファイルの参照方法

2013-11-08 16:23:23 | JavaとWeb
Struts2では、プロパティファイルの参照方法として、3種類(細かくは4種類)くらいに分けられる。


(1)ActionSupport(を継承したクラス)で見る
(2)JSP内で見る
(3)sタグを使う
    s:propertyを使う
    s:textを使う

以下、順にみていく



■前提
プロパティファイルを
WEB-INF/classes
の下に、「global_ja.properties」というファイル名で作成する。
内容は
sample.title=This is global screen.



また、struts.xmlで、以下のように

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<package name="struts2test" namespace="/" extends="struts-default">
<action name="test" class="struts2.test.TestAction">
<result name="success">/kekka.jsp</result>
</action>
</package>
<constant name="struts.custom.i18n.resources" value="global"/>

</struts>

(赤字のところが、今回の説明対象)
プロパティファイルは宣言されているものとする



■ActionSupport(を継承したクラス)で見る
ActionSupportを継承したクラスで、getText(プロパティ名)で見れる


package struts2.test;

import com.opensymphony.xwork2.ActionSupport;
// 参考:http://ameblo.jp/tyoku123/entry-10439370680.html

public class TestAction extends ActionSupport{
private static final long serialVersionUID = 1L;

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

private String msg;

public String execute()
{
setMsg(getText("sample.title"));

return SUCCESS;
}

}


赤字のところが、今回の説明対象




■JSP内で書く

これは、struts2に限ったことではないが、ResourceBundle.getBundle
したResourceBundleオブジェクトに対して、getString(プロパティ名)
すると、値が取れる。

このサンプルは、「sタグを使う」とまとめて、後述のJSPサンプル内
にある。




■sタグを使う

s:propertyの場合には、value="getText('プロパティ名')で、
s:text name="プロパティ名"で
それぞれ取ってこれる。

「JSP内で書く」と合わせて、JSPサンプルは、こちら!

<%@ page contentType="text/html; charset=Shift_JIS" import="java.util.*" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
<%

Locale objLcl = request.getLocale();
ResourceBundle objRb = ResourceBundle.getBundle("global",objLcl);
String str = objRb.getString("sample.title");

%>
Actionから :<s:property value="msg"/><BR/>
JSPで    :<%=str%><BR/>
s:propertyで:<s:property value="getText('sample.title')"/><BR/>
s:textで  :<s:text name="sample.title"/><BR/>
</body>
</html>


結果

なお、このJSPは、前述のActionSupportの後に来ているJSPで、
ActionSupportの属性msgをs:property value="msg"で表示
している




■参考サイト

1.クラスライブラリを攻略「ユーティリティ編」 (1/5)
http://www.atmarkit.co.jp/ait/articles/0309/09/news002.html


2.Struts2:properties(プロパティファイル)の設定と取得
http://ameblo.jp/tyoku123/entry-10439370680.html


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ブラック企業の創りかた -... | トップ | 中国でiPhone5sが爆発 → 「... »
最新の画像もっと見る

JavaとWeb」カテゴリの最新記事