【发布时间】:2015-07-10 14:04:36
【问题描述】:
我开始了解 Xpages 的动态特性,并试图使我的编码更加精简。
我在 xpages 中使用 switchFacet cc 来控制要加载的自定义控件,具体取决于 sessionScope 变量中的值。
为了简单起见,我使 cc 的名称与 sessionScope 变量匹配。所以我最终得到了以下代码。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlnsstrong text:xc="http://www.ibm.com/xsp/custom"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xc:ccAppLayout>
<xp:this.facets>
<xc:ccAppNav xp:key="LeftColumn" />
<xe:switchFacet id="switchFacet1" xp:key="facet_1"
selectedFacet="#{javascript:return sessionScope.pageSelected}">
<xp:this.facets>
<xc:cpApp2Title1Page1 xp:key="cpApp2Title1Page1" />
<xc:cpApp2Title2Page1 xp:key="cpApp2Title2Page1" />
<xc:cpApp2Title2Page2 xp:key="cpApp2Title2Page2" />
<xc:cpApp2Title3Page1 xp:key="cpApp2Title3Page1" />
</xp:this.facets>
</xe:switchFacet>
</xp:this.facets>
</xc:ccAppLayout>
</xp:view>
还不错,但在我看来,如果我可以直接将 cc 设置为 sessionScope 变量,事情会变得更加清晰。这样,此 Xpage 的代码就不必在不同的 Xpage 之间更改。我可以只用一个 Xpage。
有没有办法做到这一点,这是一个好主意吗?
布莱恩
================================================ 我正在寻找的是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlnsstrong text:xc="http://www.ibm.com/xsp/custom"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xc:ccAppLayout>
<xp:this.facets>
<xc:ccAppNav xp:key="LeftColumn" />
<xc:#{javascript:return sessionScope.pageSelected} xp:key="facet_1"></xc:#{javascript:return sessionScope.pageSelected}>
</xp:this.facets>
</xc:ccAppLayout>
</xp:view>
================================================ ================ 克努特,
这是一个很好的建议,但正如您所指出的,它仅在页面创建时加载。
是否有不同的方式来做我想做的事,还是更容易保留原来的代码?
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xc:ccAppLayout>
<xp:this.facets>
<xc:ccAppNav xp:key="LeftColumn" />
<xp:include id="include1" xp:key="facet_1">
<xp:this.pageName><![CDATA[${javascript:sessionScope.pageSelected + ".xsp"}]]></xp:this.pageName>
</xp:include></xp:this.facets>
</xc:ccAppLayout>
</xp:view>
【问题讨论】:
-
您总是可以为自定义控件创建一个属性,这就是您的要求吗?
标签: xpages