我在f:ajax
开发中使用 JSF 2.0、战斧和一些东西。我正在尝试为我的 JSF 应用程序制作一些神奇的词。当你点击这个单词时,它会变成另一个,再次点击它会再次变回来。为了更清楚,这里有一个场景。原字显示 XX,点击 XX 后,XX 变为 YY。当点击 YY 时,会变回 XX。你感受到魔法了吗?:P
我就是这样做的。我创建 2 h:panelGroup
。一个包含 XX 字,另一个包含 YY 字,如下所示:
<h:panelGroup id="Panel_X">
<h:outputText value="XX" />
</h:panelGroup>
<h:panelGroup id="Panel_Y">
<h:outputText value="YY" />
</h:panelGroup>
为了使其可点击,我使用 commandLink。从上面的代码修改,变成这样:
<h:panelGroup id="Panel_X" rendered="#{magicBean.show_X == true}">
<h:commandLink action="#{myBean.doFunc}">
<f:ajax event="action" render="Panel_Y"/>
<h:outputText value="XX" />
</h:commandLink>
</h:panelGroup>
<h:panelGroup id="Panel_Y" rendered="#{magicBean.show_X == false}">
<h:commandLink action="#{myBean.doFunc}">
<f:ajax event="action" render="Panel_X"/>
<h:outputText value="YY" />
</h:commandLink>
</h:panelGroup>
这是支持bean:
@ManagedBean(name = "magicBean")
@SessionScoped
public class MagicWordBean {
public boolean show_X = true;
/** getter and setter of show_X **/
public String doFunc() {
showX = !showX;
return "";
}
}
我不确定我是否做得正确,但有一件事我确信它不起作用。最初加载页面时,它显示 XX 字。点击XX字时,YY字不显示,XX字留在原处。
对此有任何线索吗?