天天看点

JSF 2.0 hello world example

参考:http://www.mkyong.com/jsf2/jsf-2-0-hello-world-example/

易佰教程:https://www.yiibai.com/jsf/commandbutton.html

一、Red Hat IDE直接创建J2EE Web Project

最终项目结构,这里略过jar包,因为自动生成了,不用管!

JSF 2.0 hello world example

二、JSF 2.0 Managed Bean

package common;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class HelloBean implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	
}
           

三、JSF 2.0 Pages

1、index2.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"> 

<h:head><title>CDI Sample</title></h:head> 
<h:body> 
	
	<br /> Book::
	<br /> #{Index.bookProductService.newProduct.toString()}
	
	<h2>JSF 2.0 Hello World Example - hello.xhtml</h2>
	<h:form>
		<h:inputText value="#{helloBean.name}" />
		<h:commandButton action="welcome" value="welcome me" />
		<h:commandButton action="welcome.xhtml" value="welcome me2" />
		<h:button outcome="welcome.xhtml" value="welcome me3"></h:button>
	</h:form>
	
	
</h:body> 
</html>
           

2、welcome.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html">

<h:head>
	<title>JSF 2.0 Hello World</title>
</h:head>
<h:body bgcolor="white">
	<h2>JSF 2.0 Hello World Example - welcome.xhtml</h2>
	<h2>Welcome #{helloBean.name}</h2>
</h:body>
</html>
           

四、JSF 2.0 Serlvet Configuration

自动生成的项目注意 没有的话 WEB-INF下添加 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>jboss-javaee-webapp</display-name>
  <welcome-file-list>
    <welcome-file>index2.xhtml</welcome-file>
  </welcome-file-list>
  
  <!-- JSF mapping -->
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  
  <!-- Map these files with JSF -->
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>
  
</web-app>
           

五、Demo

Define a “javax.faces.webapp.FacesServlet” mapping, and map to those well-known JSF file extensions (/faces/*, *.jsf, *.xhtml,*.faces).

In this case, the below 4 URLs are pointing to the same index2.xhtml.

http://localhost:8081/jboss-javaee-webapp/index2.jsf

http://localhost:8081/jboss-javaee-webapp/index2.faces

http://localhost:8081/jboss-javaee-webapp/index2.xhtml

http://localhost:8081/jboss-javaee-webapp/faces/index2.jsf

JSF 2.0 hello world example
JSF 2.0 hello world example
jsf