Ajax SelectOneRadio在选择时设置时间
我一直在绞尽脑汁想弄明白这一点。我有一个非常简单的要求,这是一个非常有趣的问题 要求是在用户选择单选按钮列表中的选项时更新时间戳 所以我有一个单选按钮列表:Ajax SelectOneRadio在选择时设置时间,ajax,jsf-2,radiobuttonlist,Ajax,Jsf 2,Radiobuttonlist,我一直在绞尽脑汁想弄明白这一点。我有一个非常简单的要求,这是一个非常有趣的问题 要求是在用户选择单选按钮列表中的选项时更新时间戳 所以我有一个单选按钮列表: ... <h:selectOneRadio value="#{mybean.myvalue}" > <f:selectItem itemLabel="A" itemValue="A"/> <f:selectItem itemLabel="B" itemValue="B"/> <
...
<h:selectOneRadio value="#{mybean.myvalue}" >
<f:selectItem itemLabel="A" itemValue="A"/>
<f:selectItem itemLabel="B" itemValue="B"/>
<f:selectItem itemLabel="C" itemValue="C"/>
<f:selectItem itemLabel="D" itemValue="D"/>
<f:ajax render="timeBox" listener="#{measurements.captureTime('timeBox')}"/>
</h:selectOneRadio>
...
但当我更改单选按钮时,该值不会更新。我很确定这与JSF的各个阶段有关(也就是说,由于这篇文章中的问题,它没有被更新),但我不完全确定如何修复它。。如果可能的话,我真的想避免包括另一个图书馆
如往常一样,如果您需要更多信息,请告诉我,我很乐意为您效劳
谢谢
编辑
这些组件的结构是:
<h:form>
<table>
<tr>
<td>
<h:select.../>
</td>
</tr>
<tr>
<td>
<h:output.../>
</td>
</tr>
</table>
</h:form>
给定的构造表明您有相同ID的重复组件。请确保没有相同ID的重复组件。是的,我忘了切换名称,现在已修复。好的,您使用的是Mojarra还是MyFaces?如果我没记错的话,如果ajax侦听器方法采用的参数与AjaxBehaviorEvent
不同,MyFaces就不会接受它。顺便说一句,您的渲染idtimeBox
与实际的组件idtimeFirstLeft
也不一样。再次感谢您做出了更改。我试图使名称更有意义,但结果适得其反。所以没有相同ID的重复元素?对不起,这个问题很难回答,只要你不显示SSCCE。我所能做的就是建议你仔细阅读我对这个类似问题的回答:
...
public void captureTime(String id){
if(id.equals("timeBox"){
timeBox = new Date(System.currentTimeMillis());
}
}
...
<h:form>
<table>
<tr>
<td>
<h:select.../>
</td>
</tr>
<tr>
<td>
<h:output.../>
</td>
</tr>
</table>
</h:form>