データベースのバージョン管理
原則として、データベースに対する作業は必ずバージョン管理しなければならない
実際にはなかなか大変だろうけど、この記事に書いてあるような
やり方を目指したいものです。
アクションの配列プロパティを指定の文字で連結する
[Action側]
public String[] hoge = {"aaa", "bbb", "ccc"};
これは、正しく動作しませんでした。
理由は、以下のSeasar MLのひがさんの説明を参照。
ActionやActionFormのプロパティは、 publicフィールドを ELやStrutsが参照できるようにするために、 JavaBeansはMapに、配列はListにラップされています。 プロパティアクセス(.)や配列アクセス([数値])以外のやり方で、 変数にアクセスするときには気をつけてください。
以前のエントリーでは、勉強という目的もあったので、
ファンクションを自作しましたが、以下のようなやり方の方が
実際には簡単ですね。
ArrayAction.java
public class ArrayAction { public String[] hoge = {"aaa", "bbb", "ccc"}; @Execute(validator = false) public String index() { return "array.jsp"; } }
array.jsp
<c:forEach var="h" varStatus="s" items="${hoge}"> ${h}${s.last ? "" : ", "} </c:forEach>
実行結果
aaa, bbb, ccc
c:forEachタグのvarStatus属性は、
varStatus="変数名" のようにして、ループ内の処理からループの状態を
参照するための変数名を指定します。
"変数名".last は最後の要素であればTrueを返します。
追記:
id:higayasuoさんからコメントを頂きましたが、
特別な書式指定がなければ、以下の方法が一番楽だと思います。
array.jsp
${f:h(hoge)}
実行結果
[aaa, bbb, ccc]