如何在Java

时间:2018-06-07 12:40:44

标签: java xpages

在我的XPage应用程序中,我想在java中的后端执行计算时引导XPage的行为。

我想通过设置viewScope变量来计算某些控件的呈现属性来控制行为。

有人可以指导我如何实现这一目标吗?谷歌到目前为止还不是我的朋友......

3 个答案:

答案 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属性?在我的应用程序中,我只是不再使用范围变量。