input type="buttonではなくbuttonタグへの対応

前回の悩みに続いてUI周りをいろいろと検証しています..

ボタンについては、input type="button" よりもが流行らしい...(ホント?)

で、早速検証すると、エラーがでてしまいました。

現象はS2JSF Example 1.1.2 のAdd.htmlで確認しました。

<input type="submit" value="calculate" m:action="#{addAction.calculate}"/>

<button type="button" m:action="#{addAction.calculate}">
calculate
</button>

に書き換えて実行すると、

org.seasar.framework.beans.PropertyNotFoundRuntimeException: [ESSR0065]クラス(examples.jsf.action.impl.AddActionImpl$$EnhancedByS2AOP$$1e247e2)のプロパティ(calculate)が見つかりません
	org.seasar.framework.beans.impl.BeanDescImpl.getPropertyDesc(BeanDescImpl.java:132)
	org.seasar.jsf.el.S2PropertyResolver.getProperty(S2PropertyResolver.java:202)
	org.seasar.jsf.el.S2PropertyResolver.getValue(S2PropertyResolver.java:56)
	org.seasar.teeda.core.util.PropertyResolverUtil.getValue(PropertyResolverUtil.java:32)
	org.seasar.teeda.core.el.impl.commons.ComplexValueReplacer$JsfPropertySuffix.evaluate(ComplexValueReplacer.java:128)
	org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
	org.seasar.teeda.core.el.impl.commons.CommonsExpressionProcessorImpl.evaluate(CommonsExpressionProcessorImpl.java:94)
	org.seasar.teeda.core.el.impl.ValueBindingImpl.getValue(ValueBindingImpl.java:68)
	org.seasar.jsf.util.BindingUtil.getBindingValue(BindingUtil.java:110)
	org.seasar.jsf.render.html.HtmlElementRenderer.renderAttributes(HtmlElementRenderer.java:105)
	org.seasar.jsf.render.html.HtmlElementRenderer.encodeBegin(HtmlElementRenderer.java:53)
	javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:331)
	org.seasar.jsf.util.RenderUtil.encodeChild(RenderUtil.java:73)
	org.seasar.jsf.util.RenderUtil.encodeChildren(RenderUtil.java:63)
	org.seasar.jsf.util.RenderUtil.encodeChild(RenderUtil.java:77)
	org.seasar.jsf.util.RenderUtil.encodeChildren(RenderUtil.java:63)
	org.seasar.jsf.render.html.HtmlElementRenderer.encodeChildren(HtmlElementRenderer.java:87)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:340)
	org.seasar.jsf.util.RenderUtil.encodeChild(RenderUtil.java:75)
	org.seasar.jsf.util.RenderUtil.encodeChildren(RenderUtil.java:63)
	org.seasar.jsf.render.html.HtmlElementRenderer.encodeChildren(HtmlElementRenderer.java:87)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:340)
	javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:244)
	javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:212)
	org.seasar.jsf.processor.TagProcessorImpl.processTag(TagProcessorImpl.java:249)
	org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:239)
	org.seasar.jsf.processor.ElementProcessor.process(ElementProcessor.java:93)
	org.seasar.jsf.processor.TagProcessorImpl.processChildren(TagProcessorImpl.java:294)
	org.seasar.jsf.processor.TagProcessorImpl.processBodyTag(TagProcessorImpl.java:267)
	org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:235)
	org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:218)
	org.seasar.jsf.processor.ViewProcessor.process(ViewProcessor.java:198)
	org.seasar.jsf.processor.ViewProcessor.process(ViewProcessor.java:196)
	org.seasar.jsf.runtime.ViewRendererImpl.renderView(ViewRendererImpl.java:102)
	org.seasar.jsf.application.S2ViewHandler.renderView(S2ViewHandler.java:123)
	org.seasar.jsf.lifecycle.LifecycleImpl.render(LifecycleImpl.java:200)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:93)
	examples.jsf.util.RequestDumpFilter.doFilter(RequestDumpFilter.java:66)
	org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:62)
	org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:63)
	org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)


...orz