我可以在 JSF 中使用即时属性来刷新我的 html 页面而不调用任何支持 bean 方法吗?我是 jsf 的新手,请建议并解释立即使用
问问题
561 次
3 回答
0
想象一下,您有以下代码:
<h:form>
<h:selectOneMenu id="subscriptions"
value="#{subscriptionController.subscriptions}"
immediate="true">
<f:selectItem id="item1" itemLabel="News" itemValue="1" />
<f:selectItem id="item2" itemLabel="Sports" itemValue="2" />
<f:selectItem id="item3" itemLabel="Music" itemValue="3" />
<f:selectItem id="item4" itemLabel="Java" itemValue="4" />
<f:selectItem id="item5" itemLabel="Web" itemValue="5" />
</h:selectOneMenu>
</h:form>
关于immediate 属性是一个布尔标志,指示组件事件应该立即发送到注册的事件侦听器,而不是在 JSF 请求处理生命周期的验证阶段之后。immediate 标志允许您绕过特定组件的 JSF 验证。参考这里。
JSF 生命周期不容易理解,但你可以在这里查看一个很好的解释:JSF 生命周期
在下一级体验中,您可以添加 ajax以进一步提高您的性能。最推荐的是在这种情况下使用库,例如 RichFaces 和 PrimeFaces。
问候,
于 2013-04-30T12:14:15.963 回答
0
根据您的要求,您似乎不需要使用即时属性。
只需使用 f:ajax 来处理(执行)和更新(渲染)特定元素或元素组。它不会损害性能。
要了解 JSF 生命周期和直接属性的详细信息,请查看Baluc 的博客
于 2013-04-30T12:35:13.820 回答
0
通过使用组件来刷新页面或页面的特定区域来使用reRender
属性。richfaces
于 2013-04-30T09:59:09.703 回答