XPages - SSJS调用bean

ano*_*Bob 0 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>
Run Code Online (Sandbox Code Playgroud)

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

创建了一个包

package testBean;

public class helloWorld {
    public String anyoneThere(){
        return "Yo!";
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我修改了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>
Run Code Online (Sandbox Code Playgroud)

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

Tob*_*les 6

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

<managed-bean-class>testBean.helloWorld</managed-bean-class>
Run Code Online (Sandbox Code Playgroud)

您的标签也必须有括号

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