在JSF 1.2中,我们必须在JSF配置文件(如
faces-config.xml
)中注册受管理的bean。
从JSF 2.0可以使用注解注册管理bean。上一篇 JSF学习 中使用的是JSf2.0之前的,托管bean只能是xml配置。
这篇重新创建web工程,导入jsf2.0jar
一、创建web工程
1、new web project
项目结构:
二、使用注解来注册JSF托管的bean
package jsf_demo.bean;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean(name = "user")
@RequestScoped
public class UserBean {
private String name;
private String password;
private String errorMsg;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public String verify() {
/*
* if(name == null || password == null){ errorMsg = "用户名或密码为空"; return "error";
* }else if(name != "root" || password != "123"){ errorMsg = "用户名或密码错误"; return
* "error"; }else{ errorMsg = "用户名或密码正确"; return "success"; }
*/
if (name.equals("root") && password.equals("123")) {
errorMsg = "用户名或密码正确";
return "success";
} else if (name.equals("") || password.equals("")) {
errorMsg = "用户名或密码为空";
return "error";
} else {
errorMsg = "用户名或密码错误";
return "error";
}
}
}
三、faces-config.xml 里不用注册bean了
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
<navigation-rule>
<from-view-id>/pages/index.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/pages/welcome.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>error</from-outcome>
<to-view-id>/pages/index.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
四、web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>jsf_demo2</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
</web-app>
五、JSF2.0 jar包
下载资源地址:JSF2.2基本jar包
放入lib即可
index.jsp
welcome.jsp 还和之前的一样
六、测试
http://localhost:8081/jsf_demo2/pages/index.faces