Jsf 在Java类中调用函数的表达式语言(EL)语法中缺少一些东西
我使用了的(EL)Jsf 在Java类中调用函数的表达式语言(EL)语法中缺少一些东西,jsf,xpages,Jsf,Xpages,我使用了的(EL)myUnmanagedBean.fn()来计算Java类中链接标签的文本。其中myUnmanagedBean是bean的名称 功能是, private static String s="vijay"; static String fn() { return s; } 我已将数据上下文添加到xpage,相应的代码是: <xp:this.dataContexts> <xp:dataContext var="myUnmanagedBean"
myUnmanagedBean.fn()
来计算Java类中链接标签的文本。其中myUnmanagedBean是bean的名称
功能是,
private static String s="vijay";
static String fn()
{
return s;
}
我已将数据上下文添加到xpage,相应的代码是:
<xp:this.dataContexts>
<xp:dataContext var="myUnmanagedBean"
value="${javascript:new com.kkmsoft.vijay.Invoke1()}">
</xp:dataContext>
</xp:this.dataContexts>
datacontext仅用于测试目的;我知道这不是一个理想的方法。
有什么问题
斯文是对的。你的代码不是一个Bean(看起来很像)。豆子:
- 具有没有参数的默认构造函数
- 具有get和set函数对(如果省略set,则它是只读属性)
myUnmanagedBean.fn
package com.kkmsoft.vijay;
//Import statements omitted
public class Invoke1 implements Serializable {
private String s="vijay";
public String getFn() {
return this.s;
}
// Optional
public String setFn(String newS) {
this.s = newS;
}
}
注意:fn在EL中很小,但getFn需要大写字母F。Protip:不要为你的问题选择一个标题,该标题声称某种语言/模式只表明你缺乏理解。如果您不理解某些内容,请提出一个问题:例如,如何从“我的EL代码”中的ELI调用Java函数。现在只有我注意到了。遗憾。“统一表达语言”(新事物)还是“表达语言”(旧事物)。上述情况令人满意。现在抛出属性not found异常。代码是正确的,我对字符串值使用了getter和setter。现在我使用了“myUnmanagedBean.get”。它抛出“未找到属性”异常。从com.kkmsoft.vijay类型的bean获取属性“S1”时出错。Invoke1@vijay您报告的新错误与您声明的语法不匹配
{myUnmanagedBean.getS}
将尝试调用Invoke1.getGetS()
,或Invoke1.setGetS()
,这取决于它是读上下文还是写上下文。相反,{myUnmanagedBean.fn}
将尝试基于读/写上下文调用Invoke1.getFn()
或Invoke1.setFn()
。很抱歉,有点刺耳,但是已经有很多关于这个语法的信息了。。。对于到目前为止您提出的XPages问题,您可能希望在访问stackoverflow之前先访问Google。
javax.faces.el.ReferenceSyntaxException: myUnmanagedBean.fn()
com.sun.faces.application.ApplicationImpl.checkSyntax(Unknown Source)
package com.kkmsoft.vijay;
//Import statements omitted
public class Invoke1 implements Serializable {
private String s="vijay";
public String getFn() {
return this.s;
}
// Optional
public String setFn(String newS) {
this.s = newS;
}
}