在我的页面上,我有从数据库的数据形式。我想实现,作为默认行为,写入所有更改到数据库。
我发现了这样的例子
<h:selectOneMenu value="#{bean.options}" onchange="submit()"
var="#{bean.options}" valueChangeListener="#{bean.changeListernMethod}">
<f:selectItem itemValue="1" itemLabel="option1" />
<f:selectItem itemValue="2" itemLabel="option2" />
<f:selectItem itemValue="3" itemLabel="option3" />
</h:selectOneMenu>
,但它不调用侦听器方法并重新加载所有页面。我不能在每次输入文本编辑或菜单选择更改时重新加载页面。你知道如何实现这样的行为吗?更新bean中的对象而不需要重新加载页面
<f:ajax listener="#{bean.changeListernMethod}" render="@form" event="valueChange"/>
这就是如何实现部分提交,或者用你的话来说:更新bean中的对象而不重新加载页面。我键入的这行代码将触发ajax,并(仅)在选择值时更新表单,并且该值与之前选择的值不同。
查看更多信息:
https://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/f/ajax.html