执行JSF文件时,托管Bean实例变量提供异常

时间:2017-06-17 19:27:13

标签: jsf el

我是JSF的新手,我的第一个JSF 2.2应用程序给了我一些我不理解的错误。这就是应用程序的工作原理::

用户将在 form.xhtml 文件中键入文字,他输入的文字将显示在 result.xhtml 文件中。

当应用程序午餐时显示 form.xhtml 时,我想在表单顶部显示一条消息。该消息来自托管bean中的实例变量中的默认值。

它正在显示实例变量中的文本,现在给我带来了问题。我不明白为什么从实例变量显示默认文本会给我带来问题。

我现在正在使用elclipse和glassfish

这是托管bean:

@ManagedBean
public class Navigator {

    private String name;
    private String defaultMsg = "THIS IS MY DEFAULT MESSAGE";

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public String getDefaultMsg() {
        return defaultMsg;
    }
    public void setDefaultMsg(String defaultMsg) {
        this.defaultMsg = defaultMsg;
    }
}

我有两个xhtml文件::

// form.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html">

<h:body>
        <h:outputText value="#{navigator.defaultMsg}" />
    <h:form>
        <h:inputText value="#{navigator.name}" />
        <h:commandButton value="Say Hello" action="result" />
    </h:form>

</h:body>

</html>


// result.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html">

<h:body>
    <h3>Hello #{navigator.name} !</h3>
</h:body>

</html>

这是我不明白的问题:: 当我运行没有<h:outputText value="#{navigator.defaultMsg}" />的代码时 form.xhtml ,一切正常。但如果在文件中包含该部分,我会在brower ::

中收到此错误
exception

javax.servlet.ServletException: /form.xhtml @8,51 value="#{navigator.defaultMsg}": The class 'jsf.Navigator' does not have the property 'defaultMsg'.
root cause

javax.el.PropertyNotFoundException: /form.xhtml @8,51 value="#{navigator.defaultMsg}": The class 'jsf.Navigator' does not have the property 'defaultMsg'.
note The full stack traces of the exception and its root causes are available in the Oracle GlassFish Server 3.1.2.2 logs.

“jsf.Navigator”类没有“defaultMsg”属性。

jsf 是项目的名称,导航是类名

我不明白的是实例变量 defaultMsg 是如何出现在类中的,但它无法识别它。是否与托管bean的初始化方式有关?

需要一些解释才能知道原因。

谢谢你们

0 个答案:

没有答案