我想制作 switchFacet 进行练习,但徒劳无功。其实不知道从哪里开始。这只能用java编写吗?这是我的代码。我尝试通过 sessionScope 传递变量。按钮更新值,但方面没有。如果我单击 URL 然后 ENTER,则 Facet 会更改值。
这是我的 Xpage:
<xc:FacetContainerCC viewPanelTest="#{sessionScope.VarTest}">
<xp:this.facets>
<xp:div xp:key="SecondCC"><xc:SecondCC></xc:SecondCC></xp:div>
<xp:div xp:key="FirstCC"><xc:FirstCC></xc:FirstCC></xp:div>
</xp:this.facets>
<xp:button value="#{javascript:sessionScope.VarTest}" id="button1">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:if (sessionScope.get("VarTest") == "First")
sessionScope.put("VarTest", "Second"); else sessionScope.put("VarTest","First");}]]>
</xp:this.action>
</xp:eventHandler>
而我的一面:
<xp:callback id="callback1">
<xp:this.facetName><![CDATA[#{javascript:
var viewPanelTest = sessionScope.get("VarTest");
if (viewPanelTest == "First") return "FirstCC";
else return "SecondCC";}]]>
</xp:this.facetName>
我注意到按按钮更新页面和重新输入 URL 之间存在差异。按钮发出 POST 请求,重新输入 URL 发出 GET 请求。FirstCC 和 SecondCC 是放在 facet 上的自定义组件。而且...具有相同名称的 sessionScope 变量在客户端和服务器上共存,对吗?