Estoy tratando de configurar una tabla de datos con JSF que tenga casillas para el total de filas que sumará el total de la fila enCambio de cualquier casilla de la fila. la fila se ve así:Acción JSF desde onChange
<tr id="input_row_1">
<td id="mondayInput1">
<h:inputText id="monday1" size="4" value="#{timesheet.monday1}" required="false" />
<!-- <input name="monday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> -->
</td>
<td id="tuesdayInput1">
<h:inputText id="tuesday1" size="4" value="#{timesheet.tuesday1}" required="false" />
<!--<input name="tuesday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> -->
</td>
<td id="wednesdayInput1">
<h:inputText id="wednesday1" size="4" value="#{timesheet.wednesday1}" required="false" />
<!--<input name="wednesday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> -->
</td>
<td id="thursdayInput1">
<h:inputText id="thursday1" size="4" value="#{timesheet.thursday1}" required="false" />
<!--<input name="thursday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> -->
</td>
<td id="fridayInput1">
<h:inputText id="friday1" size="4" value="#{timesheet.friday1}" required="false" />
<!--<input name="friday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> -->
</td>
<td id="saturdayInput1">
<h:inputText id="saturday1" size="4" value="#{timesheet.saturday1}" required="false" />
<!--<input name="saturday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> -->
</td>
<td id="sundayInput1">
<h:inputText id="sunday1" size="4" value="#{timesheet.sunday1}" required="false" />
<!--<input name="sunday1" class="smallInput" type="number" size="2" maxlength="4" min="0"/> -->
</td>
<td>
<h:inputText id="total1" size="4" value="#{timesheet.total1}" required="false" />
<!-- <input name="total1" id="total1" type="text" size="5" readonly="readonly" /> -->
</td>
por lo que primero se intentó añadir onChange="#{timesheet.setTotal1}"
a las entradas de día, pero el evento onChange llama a código Javascript, no java/JSF. ¿Alguien puede ayudar a obtener el total para actualizar?
EDIT: He aceptado la respuesta de BalusC pero es necesario incluir también el atributo event
a la etiqueta <f:ajax>
a conseguir que funcione, al igual que
<h:inputText id="friday1" size="4" value="#{timesheet.friday1}" maxlength="4" required="false" >
<f:ajax event="change" render="total1" listener="#{timesheet.updateTotal1}" />
</h:inputText>
lo hice, y ahora estoy recibiendo: "javax.servlet.ServletException: Propiedad 'updateTotal1' no se encuentra en el tipo de com.timesheet.Timesheet", como si updateTotal1 es una propiedad en lugar de un método/acción –
En el '', ¿quieres decir? Aparentemente, el espacio de nombres XML de 'f:' taglib no se ha declarado en absoluto. Toda la etiqueta '' sería tratada como "texto sin formato" (léase: cualquier EL se trata como una expresión de valor). –
BalusC
Pero ha sido declarado, simplemente no incluí todo el código html –