Maven - A developer's Notebook
Struts2はMavenだし、ずっと逃げてきたけど、そろそろ観念する。Ebook Online Storeで$10で売ってたので、購入。
って、これCHMファイルじゃん。こんなのありなの? リファレンスがわりとして使うには良さそうだけど、通読には不向きだ。しおりも作れないし。
Struts2 でOGNL式のtypoがエラーにならない。
OGNLはスタティックフィールドにアクセスできるので、
public enum AgeRange {
AGE_10, AGE10_19, AGE20_29;
}
public class EntryAction implements Action {
//...
AgeRange ageRange;
public AgeRange getAgeRange() {
return ageRange;
}
//...
}
みたいなことをして、JSPの中で、タイプセーフenumを参照できる。
<s:if test="ageRange == @user.AgeRange@AGE_10">
10歳未満
</s:if>
ただ、これをAGE_100みたいにミスタイプした時に、何もエラーが出力されないので、間違いに気付きにくい。これは、XWorkの中で、例外をさらりと無視しているのが原因のようだ、
--- OgnlValueStack.java [findValue()] ---
} catch (OgnlException e) {
return findInContext(expr);
} catch (Exception e) {
とりあえずパッチを提案してみた。
OGNL
Struts2で使われる式言語OGNL、なかなか便利なんで他でも使おうかと思って、単独で入手を試みる。
OPENSYMPHONY社に行ってみるも、ダウンロードリンクが死んでいるし、フォーラムやMLも閑散としている。で、どうも今はこっちみたいだ。なんかORGドメインだけど、Inc.って書いてあるし、開発者が独立して会社を立ち上げたんだろうか?
改めて見てみると、WebWork 2.1.7の時代から、ognl.jarの中のクラスは、パッケージ名がognl.*になっている。どうも完全にOPENSYMPHONY社の持ちものってわけでは無かったようだ。
関係ないけど、OPENSYMPHONY社の方には「OGNLは"orthogonal"と、読んでくれ。ただし最後の音節は、酔っぱらいのようにな」と書いてある。なんじゃそりゃ。





