Я создал компонент Facelet для расширения h: commandLink (чтобы добавить некоторую функциональность и закругленные углы).
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<span class="btn-left btn-corners"> </span>
<span type="submit" class="submit">
<h:commandLink id="#{id}" value="#{label}" action="#{action}" />
</span>
<span class="btn-right btn-corners"> </span> </ui:composition>
Доступ к моему новому компоненту можно с помощью
<my:commandLink id="continue" label="continue" action="#{applyBacking.submit}"/>
а код Java -
public String submit(){
...
}
Однако это дает мне ошибку "ApplyBacking не имеет свойства submit". Я понимаю причину этой ошибки, потому что при рендеринге my: commandLink он пытается оценить свойство # {applyBacking.submit} в свойстве. Вместо этого я хочу, чтобы информация о методе вызываемого (applyBacking.submit) передавалась шаблону и оценивалась при рендеринге h: commandLink.
Любые предложения?