Ho bisogno di assistenza per far funzionare il mio componente composito. Sto ancora imparando le corde in JSF, quindi scusate qualsiasi ignoranza che potrebbe essere visualizzata in questo post.JSF2.0 Azione componente compositoListener
Quindi, sto lavorando con JSF 2.0 e ho deciso di creare un componente composito per rendere riutilizzabile questo particolare snippet di codice. Il componente visualizza tutto perfettamente, ma non si comporta affatto quando si tenta di aggiungere actionListener.
Ecco il codice per il mio componente
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface displayName="columnUpdate">
<composite:attribute name="id"
required="true"
displayName="id"
shortDescription="Id to apply to this control and its child components">
</composite:attribute>
<composite:attribute
name="value"
displayName="value"
required="true"
shortDescription="Field that will hold the new updated value.">
</composite:attribute>
<composite:attribute
name="columnName"
displayName="columnName"
required="true"
shortDescription="Value that will be applied as the column header">
</composite:attribute>
<composite:attribute
name="text"
displayName="text"
shortDescription="Text to be displayed above the field">
</composite:attribute>
<composite:actionSource name="actionEvent" targets="saveEvent"></composite:actionSource>
</composite:interface>
<composite:implementation>
<h:outputLabel value="#{cc.attrs.columnName}" onclick="showWindow('#{cc.attrs.id}')"></h:outputLabel>
<div id="#{cc.attrs.id}" class="ccColumnUpdate">
<div id="windowClose" onclick="closeWindow('#{cc.attrs.id}');" style="top: -10px;" title="Close this window">CLOSE</div>
<div>
<h:outputLabel id="lblTitle" value="#{cc.attrs.text}"></h:outputLabel>
</div>
<div>
<h:inputText id="txtValue" value="#{cc.attrs.value}"></h:inputText>
</div>
<div style="text-align:right;">
<h:commandButton id="saveEvent" value="Save"></h:commandButton>
</div>
</div>
</composite:implementation>
</ui:composition>
Ecco il codice nella mia pagina che utilizza il componente:
<al:columnUpdate id="cuExpenseAmount" value="#{expense.columnValue}" columnName="Expense Amount" text="Set Expense Amount to:">
<f:actionListener for="actionEvent" binding="#{expense.updateColumnValue}">
<f:ajax execute="@form"></f:ajax>
</f:actionListener>
</al:columnUpdate>
e qui è il mio codice a backing bean:
public void updateColumnValue(ActionEvent event) throws ParseException{
//Got HERE
}
Non ricevo errori o non prendo alcun punto di interruzione impostato sul bean di supporto. Sarebbe gradito qualsiasi aiuto o indicazioni nella giusta direzione.
saluti,
Mike