staticなGetter

セレクトボックスの中身をFormにでもかくべぇと思って。

 private static Collection options;
 static {
  Collection c = new ArrayList();
  c.add(new LabelValueBean("label0", "value0"));
  c.add(new LabelValueBean("label1", "value1"));
  c.add(new LabelValueBean("label2", "value2"));
  options = c;
 }

と書いてみた。

staticなので当然、こう書く(Eclipseがね)。

 public static Collection getOptions() {
  return options;
 }
 public static void setOptions(Collection options) {
  hogeForm.options = options;
 }

実行。

2005-10-XX XX:XX:XX,028 [http-8080-Processor25] ERROR (StandardWrapperValve.java:253) - サーブレット action のServlet.service()が例外を投げました
javax.servlet.jsp.JspException: ServletException in '/hoge.jsp': Bean org.apache.struts.taglib.html.BEAN のプロパティ options に対するゲッターメソッドがありません
 at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:923)
 at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:462)
 at org.apache.jsp.hoge.layout_jsp._jspx_meth_tiles_insert_0(org.apache.jsp.hoge.layout_jsp:239)
 at org.apache.jsp.hoge.layout_jsp._jspService(org.apache.jsp.hoge.layout_jsp:187)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


なんでやねん。


まさかと思ってGetterから"static"をとっぱらったら動作した。


・・・はぁ、そうなのか。


◆参考にした本

Apache Strutsハンドブック (Technical Handbook Series)

Apache Strutsハンドブック (Technical Handbook Series)