El componente compuesto JSF2 lanza PropertyNotFoundException para el método de acción
Tengo un componente compuesto:
<composite:interface>
<composite:attribute name="actionMethod"
method-signature="java.lang.String action()" required="true" />
</composite:interface>
<composite:implementation>
<h:form>
<h:commandButton id="captureButton" value="#{msgs.capture}"
action="#{cc.attrs.actionMethod}" />
</h:form>
</composite:implementation>
y una página que llama a ese componente compuesto:
<ezcomp:captureTitle actionMethod="#{saveDecisionsBean.captureTitle}" />
y un bean que contiene la acción:
@Named(value="saveDecisionsBean")
@SessionScoped
public class SaveDecisionsBean extends BackingBeanBase {
...
public String captureTitle() {
...
}
}
Ahora aquí está mi problema. Cuando intento ejecutar esto, dice que SaveDecisionsBean no tiene una propiedad captureTitle. Por lo tanto, tengo que agregar unSaveDecisionsBean#getCaptureTitle()
método. Cuando hago esto, funciona bien. ¿Por qué debería tener que definir este método? Dice en el<composite:attribute />
que es un método y se usa como una acción.
Aquí está el mensaje de error exacto que recibo:
javax.el.PropertyNotFoundException: /index.xhtml @54,86
actionMethod="#{saveDecisionsBean.captureTitle}":
The class 'com.example.persistence.SaveDecisionsBean_$$_javassist_209'
does not have the property 'captureTitle'.
(Por razones de SEO: otras implementaciones pueden mostrar el nombre de la claseWeldClientProxy
.)