1

我可以在 JSF 中使用即时属性来刷新我的 html 页面而不调用任何支持 bean 方法吗?我是 jsf 的新手,请建议并解释立即使用

4

3 回答 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 回答