我试图从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部分中运行。
答案 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>