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

JSF学习应用简单实例

?????? 最近工作比较闲,开始学习JSF开发,在JSF项目中,首先客户端触发相关的事件,发送请求到服务端的执行JSF的控制器类FacesServlet中,通过这个类执行服务类相关的方法的,服务类相关的方法调用相关的模型信息,将结果给客户端。下面简介开发一个简单的JSF 实例过程如下:

?

1.创建一个Web项目:

??????? 导入JSF相关的类库如下:

项目结构如下:

2.在faces-config.xml配置信息如下:

<?xml version='1.0' encoding='UTF-8'?>
<faces-config 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/web-facesconfig_1_2.xsd"
    version="1.2">
    <!-- 
         国际化配置
        在<local-config>一定有一个<default-locale>,而<supported-locale>可以有好几个,这告诉JSF您的应用程式支援哪些语系。
     -->
     
       <!-- 
      <f:view>可以设定locale属性,直接指定所要使用的语系

	    加载国家化的方法
	    JSF会根据<f:loadBundle>的basename属性加上<f:view>的locale属性来决定要使用哪一个讯息资源档
	 -->
	<application>
      <locale-config>
        <default-locale>en_US</default-locale>
        <supported-locale>zh_CN</supported-locale>
      </locale-config>
      <message-bundle>
      	messages
      </message-bundle>
    </application>
    
    <!-- JSF 校验器的配置 -->
    <validator>
		<validator-id>com.easyway.jsf.email</validator-id>
		<validator-class>com.easyway.jsf.commons.EmailValidator</validator-class>
	</validator>
  
	<!-- 容器管理bean的配置 -->
	<managed-bean>
		<managed-bean-name>mathService</managed-bean-name>
		<managed-bean-class>com.easyway.jsf.service.MathService</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<!-- 容器导航的规则 -->
	<navigation-rule>
		<from-view-id>/index.jsp</from-view-id>
		<navigation-case>
			<from-outcome>result</from-outcome>
			<to-view-id>./result.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	
</faces-config>

 

?

3.服务类中各种信息如下:

package com.easyway.jsf.service;

/***
 * JSF后台的服务的
 * @author longgangbai
 *
 */
public class MathService {
	private int num0;
	private int num1;
	private int result;
	private String email;
	private String password;
	
	
	public int getNum0() {
		return num0;
	}
	public void setNum0(int num0) {
		this.num0 = num0;
	}
	public int getNum1() {
		return num1;
	}
	public void setNum1(int num1) {
		this.num1 = num1;
	}
	public int getResult() {
		return num0+num1;
	}
	public void setResult(int result) {
		this.result = result;
	}
	
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	public int sum(){
		return num0+num1;
	}
	/**
	 * 直面执行的方法
	 * 
	 * @return
	 */
	public String resultSum(){
		result =sum();
	 return "result";
	}
	

	
}

?

4.在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">
  <context-param>
    <param-name>javax.faces.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml</param-value>
  </context-param>
  <servlet>
    <servlet-name&