我正在 Netbeans 7.0 上使用 JSF 开发 Web 应用程序。我创建了 2 个页面:一个用于输入人名,另一个用于显示该姓名。我正在使用带有 get 和 set 方法的 java bean。
当我在第一页代码提交表单时出现错误。
这是我的第一页index.xhtml
接受名称:
<h:form>
Enter your Name : <h:inputText value="#{demoBean.name}" required="true"/>
<br/> <h:commandButton value="Submit" action="welcome.xhtml"/>
</h:form>
这是另一页welcome.xhtml
显示名称:
<h:body>
Hello #{demoBean.name}
</h:body>
这是托管 beandemoBean.java
:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean()
@SessionScoped
public class demoBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
这是我提交第一页时遇到的错误:
/index.xhtml @10,86 value="#{demoBean.name}":目标无法访问,标识符“demoBean”
解析为 null
JSP 框架期望您的 bean 类名称符合 Java 命名约定,即“CamelCased”(例如DemoBean
),在这种情况下,它将假定该 bean 将在 JSP 中通过默认名称进行引用,该默认名称是通过将 bean 名称的第一个字符转换为小写形式形成的 (demoBean
).
由于您偏离了框架的期望,因此您需要在 JSP 中指示您引用 bean 的名称,或者通过在@ManagedBean
注释或可选的 faces-config.xml 文件中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)