Target Unreachable,标识符'userBean'解析为空
- 有两种配置托管bean的方法,一种是使用“faces-config.xml”文件,另一种使用“annotations”。
- 所以在这个演示中,我想在MyEclipse中使用注释来配置bean,但它不起作用。
- 下面是代码:
1.UserBean.javaTarget Unreachable,标识符'userBean'解析为空
public class UserBean {
String userid;
String password;
@Named("userBean")
@RequestScoped
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}}
2.Login.xhtml the page users enter the id and password
3.Welcome.xhtml when user click the submit button, the page comes
4.faces-config.xml中 faces-config.xml
正如你所看到的,我并没有在 “faces-config.xml中” 文件中配置管理的bean,我只是用 “@Named(” 的UserBean” )“和”@RequestScoped“在我的”UserBean.java“文件中配置bean。
1.I打开login.xhtml网站
2.当我按一下按钮,提交数据时,它出现这个页面:
我开始学习JSF,这些天,有很多困惑的事情,我需要弄清楚,非常感谢,如果你能给我一些注意事项或指导在这个问题上^ _^
(Ps.This是我在*上问的第一个问题,所以我无法直接上传图片,如果您无法通过hperlinks查看图片,请告诉我。谢谢!)
您需要设置@Named
bean注释的方法。 该错误基本上说服务器无法找到托管的bean类。所以你的代码应该是这样的:
@Named("userBean")
@RequestScoped
public class UserBean {
String userid;
String password;
public String getUserid() {
return userid;
}
我看到了你的Welcome.xhtml。你应该使用#而不是$。 所以欢迎页面应该有这样的事情
<h:outputLabel value="#{userBean.password}" />
- 我想,为什么我不能使用注释豆的原因是,我没有在我的应用程序配置CDI,因为Tomcat不支持CDI本身你应该手动添加一些外部jar文件来支持它。所以这是我配置它的步骤。
- 下载焊接的servlet.jar文件,这里是我下载的链接,也可以从互联网上下载它。 http://www.jsf2.com/using-cdi-and-jsf-2.2-faces-flow-in-tomcat/samples/weld-servlet.jar
- 这个jar文件添加到目录“/ WEB-INF/lib目录“(倒是更好地构建路径)
创建 “/ WEB-INF” 下的beans.xml文件,替换现有的beans.xml文件的代码,代码片段如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"></beans>
还有一件事,你必须实现Serializble接口。
- 给你我的整个方案概要。 image
谢谢你的回应,我改变了你指出的代码,但它仍然出现错误页面,即使是同样的错误:目标不可达,标识“的UserBean”解析为空。 –
是否在web.xml中指定了面向servlet条目? – Harsh
Login.xhtml欢迎文件> 欢迎文件列表>面临的Servlet servlet的名称> javax.faces.webapp.FacesServlet servlet-class> 1 load-on-startup> Faces Servlet servlet的名称> * .xhtml URL模式> servlet的映射> javax.faces.PROJECT_STAGE Development param-value> context-param> –