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

gooブログ「ウィリアムのいたずらの、まちあるき、たべあるき」がお引越ししてきました

クラス名を@で囲む・・って、まじ(@_@!) struts2等のOGNL式でのstatic表示

いや~OGNL式、想定の斜め上いくわ~

Struts2での話。今、以下のようなクラス
package struts2test;

public class MyStatic {
	public static String staticName = "my name is static.";

	public static String getStaticName() {
		return staticName;
	}

	public static void setStaticName(String staticName) {
		MyStatic.staticName = staticName;
	}


}

があって、「staticName」を、s:propertyタグで出したいとする。
どうやって書くか・・・

すなわち、staticの値をどうやって書くかということなんだけど・・・





seasarのOGNLガイド
http://s2container.seasar.org/2.4/ja/ognl.html

に載っていたんだけど(以下太字は上記サイトより引用)、
まじ、びっくり!!


staticフィールド
staticフィールドにアクセスするには,クラス名の前後を'@'で囲んで,その後にフィールド名を記述します.クラス名はパッケージ名で修飾した完全限定名を指定する必要があります (java.langパッケージの場合は省略することが出来ます).



まじっすか(@_@!)
まじに、@で囲むんっすか・・・

・・・本当か?

やってみた。
JSP

<%@ page language="java" import="java.util.*,struts2test.MyStatic" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>staticのテスト</title>
</head>
<body>

s:propertyタグでstatic - <s:property value="%{@struts2test.MyStatic@staticName}" /><BR/>
参考文献 http://s2container.seasar.org/2.4/ja/ognl.html


</body>
</html>



結果


ほんと~だ~