日期:2014-05-16  浏览次数:20299 次

JSF简单应用
        有一段时间没有用JSF了,现在都有些生疏了,以前看过一些,现在终于有时间仔细研究下了,记下学习笔记,以备日后温故知新。

      【1】新建一个web工程名为guessNumber,配置JSF应用环境在Web应用配置文件web.xml中映射一个javax.faces.webapp.FacesServlet实例。
        web.xml文件配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <!-- 该参数配置使用指定JSF配置文件所在的位置 -->
  <context-param>
    <param-name>javax.faces.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml</param-value>
  </context-param>
  <!-- 该servlet用来配置JSF的前端控制器-->
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>Faces Servlet_tmp</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <!-- 该servlet-mapping用来配置对哪些请求需要交由上面所配置的servlet -->
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
     【2】创建一个后台Bean(backing bean)UserNumberBean.java源文件在com.jsf.userNumber包下。
package com.jsf.userNumber;

import java.util.Random;

public class UserNumberBean {

private Integer userNumber=null;//该属性用来保存用户所输入数字
private Integer randomNumber=null;//该属性用来保存随机生成的数字
private String response=null;//该属性用来保存响应信息
private long maximum=10;//该属性用来指定猜数字的上限
private long minimum=0;//该属性用来指定猜数字的下限
public UserNumberBean(){
Random random=new Random();
randomNumber=random.nextInt(10);
}
public String check(){
if(userNumber!=null&&userNumber.compareTo (randomNumber)==0){
this.response="恭喜你,你猜对了";
}else{
if(userNumber>randomNumber){
this.response="你猜大了,请猜小一些";
}else{
this.response="你猜小了,请猜大一些";
}
}
return "result";
}
public Integer getUserNumber() {
return userNumber;
}
public void setUserNumber(Integer userNumber) {
this.userNumber = userNumber;
}
public String getResponse() {
return response;
}
public void setResponse(String response) {
this.response = response;
}
public long getMaximum() {
return maximum;
}
public void setMaximum(long maximum) {
this.maximum = maximum;
}
public long getMinimum() {
return minimum;
}
public void setMinimum(long minimum) {
this.minimum = minimum;
}
}
          【3】为了便于管理在WebRoot目录下新建一个文件userNumber用于存放猜数游戏的JSP页面,在该文件夹下新建两个JSP页面greeting.jsp,result.jsp
          【4】在JSF的配置文件中添加一个托管Bean(managed bean)声明,该配置文件默认在WebRoot/Web-INF文件下为faces-config.xml

        faces-config.xml: