5
我试图用JSF设置一个数据表,其中包含行总数的行,这些行将合计行中任何行的总行数onChange。该行的样子:来自onChange的JSF动作
<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>
所以我第一次尝试添加onChange="#{timesheet.setTotal1}"
的一天项,但onChange事件调用JavaScript的,而不是Java/JSF代码。有人可以帮助获得总数更新吗?
编辑: 我已接受BalusC的答案,但需要还包括event
属性为<f:ajax>
标签来得到它的工作,像这样
<h:inputText id="friday1" size="4" value="#{timesheet.friday1}" maxlength="4" required="false" >
<f:ajax event="change" render="total1" listener="#{timesheet.updateTotal1}" />
</h:inputText>
我这样做,和我现在越来越: “javax.servlet.ServletException:房产 'updateTotal1' 在类型com.timesheet.Timesheet未找到” 仿佛updateTotal1是一个属性而不是方法/动作 – 2012-08-02 19:03:24
在'上,你的意思是?显然,f:'taglib的XML名字空间根本没有被声明。然后整个''标签将被视为“纯文本”(读取:任何EL然后被视为值表达式)。 –
BalusC
2012-08-02 21:41:21
但它已被声明,我只是没有包括所有的html代码 – 2012-08-03 13:26:08