XPages - SSJS调用bean

时间:2012-08-08 22:43:01

标签: xpages xpages-ssjs

我试图从XPage中调用一些java代码,并尝试通过SSJS执行此操作。试着让一个基本的hello world示例正常工作。理想情况下,java代码的返回可以填充到变量中。

目标:( X页内容)

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:label value="#{javascript:helloWorld.anyoneThere}" id="label1"></xp:label>
</xp:view>

打印'哟!'页面加载时相反,我得到一个运行时错误,找不到helloWorld。

创建了一个包

package testBean;

public class helloWorld {
    public String anyoneThere(){
        return "Yo!";
    }
}

然后我修改了faces-config文件

<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
    <managed-bean>
        <managed-bean-name>helloWorld</managed-bean-name>
        <managed-bean-class>testBean</managed-bean-class>
        <managed-bean-scope>application</managed-bean-scope>
    </managed-bean>
</faces-config>

不确定我需要做什么来初始化/调用java函数。我见过的一些例子是关于视图或事件,但我正在做的事情的目标代码更可能在beforePageLoad部分中运行。

2 个答案:

答案 0 :(得分:6)

您的托管bean类也包含了类名。

<managed-bean-class>testBean.helloWorld</managed-bean-class>

此外,您的标签必须有括号

<xp:label value="#{javascript:helloWorld.anyoneThere();}" id="label1"></xp:label>

答案 1 :(得分:2)

我写了small tutorial on the basics of creating and using a simple managed bean with XPages

本教程还介绍了如何将getter和setter添加到变量中,以便您可以使用EL来引用它们。因此,在您的示例中,您将能够执行以下操作来引用anyoneThere变量(假设您已为其设置了getter和setter):

<xp:label value="#{helloWorld.anyoneThere}" id="label1"></xp:label>