Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 在Java类中调用函数的表达式语言(EL)语法中缺少一些东西_Jsf_Xpages - Fatal编程技术网

Jsf 在Java类中调用函数的表达式语言(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"

我使用了的(EL)
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仅用于测试目的;我知道这不是一个理想的方法。 有什么问题

  • 你的EL是错的。拆下支架
  • 你需要为你的价值观而努力
  • getter和setter不能是静态的
  • 如果要将viewScope用于数据上下文,则需要实现java.io.Serializable

  • 斯文是对的。你的代码不是一个Bean(看起来很像)。豆子:

    • 具有没有参数的默认构造函数
    • 具有get和set函数对(如果省略set,则它是只读属性)
    您将使用的EL表达式是
    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;
            }
       }