JSF框架简介与myeclipse构建简单实例

典型的JSF应用程序包含下列部分:
  • 一组JSP页面
  • 一组后台bean(为在一个页面上的UI组件定义的属性和函数的JavaBean组件)
  • 应用程序配置资源文件(定义页面导航规则、配置bean和其它的自定对象,如自定义组件)
  • 部署描述文件(web.xml)
  • 一组由应用程序开发者创建的自定义对象(有可能)
  • 一些可能包含自定义组件、约束、转换器或者监听器的对象
  • 为在页面中表现自定义对象的一组自定义tag

简单实例

1.新建一个web project


2.为项目添加jsf支持

在项目的属性中选择project faces,点选JavaServer Faces选项,如图


添加jsf支持后myeclipse自动在web.xml中添加如下代码:

  <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>
  </servlet-mapping>
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>

以及在web.xml同级目录创建一个faces-config.xml,内容如下:


<?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">

</faces-config>


3.创建一个bean类,代码:

package com.org.domain;
/**
 * 
 * @author Administrator
 *
 */
public class User {
	private String name;
	private String pass;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPass() {
		return pass;
	}
	public void setPass(String pass) {
		this.pass = pass;
	}
	
	public String login() {
		if(name.equals("wck")&&pass.equals("123")) {
			return "success";
		}else {
			return "error";
		}
	}


4.新建一个login.xhtml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
	xmlns:h="http://xmlns.jcp.org/jsf/html"
	xmlns:f="http://xmlns.jcp.org/jsf/core"
	xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
	xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" lang="en">
	<h:head>
		<title>JSF 2.2 Page</title>
		<meta name="keywords" content="enter,your,keywords,here"/>
		<meta name="description" content="A short description of this page."/>
		<meta name="content-type" content="text/html; charset=UTF-8"/>
    
		<!--<link rel="stylesheet" type="text/css" href="styles.css">-->
    </h:head>
	<h:body>
		<f:view>
    	<h:form>
    		<h:panelGrid columns="3">

                    <h:outputLabel for="name" value="用户名:" />

                    <h:inputText id="name" value="#{user.name}" required="true" />

                    <h:message for="name" />

                    <h:outputLabel for="pass" value="密码:" />

                    <h:inputSecret  id="pass" value="#{user.pass}"  required="true" />

                    <h:message for="pass" /> 

                </h:panelGrid>

                <h:panelGrid>

                    <h:panelGroup>

                        <h:commandButton value="登录" action="#{user.login}" />

                    </h:panelGroup>

                </h:panelGrid>
    	</h:form>
    </f:view>
	</h:body>
</html>


5.在faces-config.xml中配置导航规则

<?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">
	<managed-bean>
		<managed-bean-name>user</managed-bean-name>
		<managed-bean-class>com.org.domain.User</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	<navigation-rule>
        <from-view-id>/login.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/index.jsp</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-outcome>error</from-outcome>
            <to-view-id>/login.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>
    
</faces-config>



6.index.jsp代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  
  <body>
    ${user.name} 欢迎登录~!
  </body>
</html>


7.页面效果

地址栏输入http://localhost:8080/jsfTest/

直接点击登录

输入正确值:用户名 wck,密码 123

转载于:https://my.oschina.net/wck/blog/338583

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值