JSF2-Verbundkomponente löst PropertyNotFoundException für Aktionsmethode @ a
Ich habe eine zusammengesetzte Komponente:
<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>
und eine Seite, die diese zusammengesetzte Komponente aufruft:
<ezcomp:captureTitle actionMethod="#{saveDecisionsBean.captureTitle}" />
und eine Bean, die die Aktion enthält:
@Named(value="saveDecisionsBean")
@SessionScoped
public class SaveDecisionsBean extends BackingBeanBase {
...
public String captureTitle() {
...
}
}
Jetzt ist hier mein Problem. Wenn ich versuche, dies auszuführen, heißt es, dass SaveDecisionsBean keine Eigenschaft captureTitle hat. Daher muss ich ein @ hinzufügSaveDecisionsBean#getCaptureTitle()
Methode. Wenn ich das mache, läuft es einwandfrei. Warum sollte ich diese Methode definieren müssen? Es steht im<composite:attribute />
dass es eine Methode ist und als Aktion verwendet wird.
Hier ist die genaue Fehlermeldung, die ich erhalte:
javax.el.PropertyNotFoundException: /index.xhtml @54,86
actionMethod="#{saveDecisionsBean.captureTitle}":
The class 'com.example.persistence.SaveDecisionsBean_$$_javassist_209'
does not have the property 'captureTitle'.
(Aus SEO-Gründen: In anderen Implementierungen wird möglicherweise der Klassenname @ angezeigWeldClientProxy
.)