gpt4 book ai didi

java - 有条件地呈现按钮、设计、调用操作

转载 作者:行者123 更新时间:2023-11-30 11:51:55 24 4
gpt4 key购买 nike

JFS1.2 + Richfaces 3.3

情况如下:

JSP 页面有条件地呈现一个或另一个面板组。

在每个 panelGroup 中有一对 setter 和一个命令按钮。两个面板组中的每一个都使用自己的 bean 来设置和执行操作。

在页面顶部有 selectOneRadio 和(明显的)两个项目 - 条件渲染的相应两个选项。

页面正确呈现,切换器导致呈现适当的面板。案例是,命令按钮不会调用操作。

我知道发生了什么事——当我点击一个按钮来调用操作时,dom 被重新生成,但决定显示特定面板的值不再存在。不会重新创建按钮,不会触发操作。

技术上:

<h:selectOneRadio value="#{reportType}">
<f:selectItem itemLabel="x" itemValue="x"/>
<f:selectItem itemLabel="y" itemValue="y"/>
<a4j:support event="onclick" reRender="xPanel, yPanel/>
</h:selectOneRadio>

<h:panelGrid id="xPanel "columns="2" rendered="#{reportType eq 'x'}">
<...some setters>
<... commandbutton>
</h:panelGrid>

<h:panelGrid id="yPanel "columns="2" rendered="#{reportType eq 'y'}">
<...some setters>
<... commandbutton>
</h:panelGrid>

问题是,如何设计页面以获得适当的呈现和 Action ?现在,我创建了额外的 session bean 来保存切换值 (x|y),但这种设计对我来说闻起来很糟糕......

最佳答案

RichFaces 3.3 提供 <a4j:keepAlive> 与 Tomahawk 的 <t:saveState> 基本相同的标签和 JSF2 @ViewScoped .在您的 View 中的某处添加以下行:

<a4j:keepAlive beanName="#{bean}" />

只要您返回,这将使 bean 保持 Activity 状态 nullvoid来自 Action (监听器)方法。

另见:

关于java - 有条件地呈现按钮、设计、调用操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7171417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com