Составной компонент JSF2 создает исключение PropertyNotFoundException для метода действия
У меня есть составной компонент:
<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>
и страница, которая вызывает этот составной компонент:
<ezcomp:captureTitle actionMethod="#{saveDecisionsBean.captureTitle}" />
и боб, который содержит действие:
@Named(value="saveDecisionsBean")
@SessionScoped
public class SaveDecisionsBean extends BackingBeanBase {
...
public String captureTitle() {
...
}
}
Теперь вот моя проблема. Когда я пытаюсь запустить это, он говорит, что SaveDecisionsBean не имеет свойства captureTitle. Поэтому я должен добавитьSaveDecisionsBean#getCaptureTitle()
метод. Когда я делаю это, все работает нормально. Почему я должен определить этот метод? Это говорит в<composite:attribute />
что это метод, и он используется как действие.
Вот точное сообщение об ошибке, которое я получаю:
javax.el.PropertyNotFoundException: /index.xhtml @54,86
actionMethod="#{saveDecisionsBean.captureTitle}":
The class 'com.example.persistence.SaveDecisionsBean_$$_javassist_209'
does not have the property 'captureTitle'.
(По причинам SEO: другие реализации могут показывать имя классаWeldClientProxy
.)