在我的XPage应用程序中,我想在java中的后端执行计算时引导XPage的行为。
我想通过设置viewScope变量来计算某些控件的呈现属性来控制行为。
有人可以指导我如何实现这一目标吗?谷歌到目前为止还不是我的朋友......
答案 0 :(得分:2)
尝试
ExtLibUtil.getViewScope().put("variableKey", "variableValue");
答案 1 :(得分:2)
马林,
我建议你像霍华德推荐的那样使用托管bean。在XPage中使用Java时非常方便。
<强> 1。创建一个bean
它只是一个普通的java bean - 带有没有参数的构造函数。例如:
public class ExporterBean implements Serializable {
private static final long serialVersionUID = 1L;
private int numberOfDocs = 1L;
public ExporterBean() {
System.out.println("Instantiating ExporterBean");
}
public int getNumberOfDocs() {
return numberOfDocs;
}
public void setNumberOfDocs(int numberOfDocs) {
this.numberOfDocs = numberOfDocs;
}
}
请注意,您应该为所有bean实现Serializable。视图范围将强制您这样做 - 但不会强制其他人(但它可能会在以后根据您是否将bean保留在内存中或将其序列化为磁盘而咬你)
<强> 2。将其定义为托管bean
您可以在Domino Designer导航中的 Application Configuration 下的 faces-config.xml 文件中执行此操作。您需要添加以下内容:
<managed-bean>
<managed-bean-name>Exporter</managed-bean-name>
<managed-bean-class>dk.myapp.bean.ExporterBean</managed-bean-class>
<managed-bean-scope>view</managed-bean-scope>
</managed-bean>
范围可以是:请求,查看,会话或应用。完成后,您可以使用在faces-config.xml中指定的名称直接在XPage中引用bean。
在我的例子中,它可能是:
<xp:text escape="false" value="#{Exporter.numberOfDocs}"/>
希望这有帮助。
/约翰
答案 2 :(得分:1)
为什么不只是托管bean属性?在我的应用程序中,我只是不再使用范围变量。