JSF&JBoss5.1第一个例子

环境 :

eclipse3.7

Version: Indigo Service Release 2
Build id: 20120216-1857

 

JBoss5.1.0 GA

下载地址:

http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=http%3A%2F%2Fsourceforge.net%2Fpr

 

JavaEE SDK1.5

下载地址:

http://download.oracle.com/otn-pub/java/javaee5u8_6_20/java_ee_sdk-5_08-jdk-6u20-windows.exe

 

1、eclipse 创建一个 Dynamic Web Project 

name : jsfDemo

Target Runtime : JBoss v5.0 (如果没有,就new Runtime)

Dynamic web module version : 2.5

Configuration : Default Configuration  for JBoss v5.0

--> next --> 修改 Default output folder为 WebRoot\WEB-INF\classes

-->next-->修改 Content  directory:WebRoot

 Generate  web.xml deployment descriptor 打上勾

-->finish。

2、在新建项目 jsfDemo上右键 -->Properties--》点击 Project Facts--》在Project Fact中把 JavaServer Faces打上勾 ,同时选择2.0版本,然后点击

Further Configuration available...
弹出Modify Facted Project
在Type中选择 User Liberay
manage Library 弹出Preferences(Filtered)
通过new ,--》Jboss JSF 2.0,然后 Add JARs,把JSF2.0的jar包加进来

回到 Properties for jsfDemo界面,点击 Apply按钮 ,点击OK按钮。

3、添加 托管Bean:UserBean.java

在src目录上右键 new class : UserBean.java

package org.cai;

public class UserBean {
	private String name;  //用户名
	private String pass;  //用户密码
	private String locale ; //国际化 语言

	public String getLocale() {
		return locale;
	}

	public void setLocale(String locale) {
		this.locale = locale;
	}

	public String getPass() {
		return pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}

	public String getErrMessage() {
		return errMessage;
	}

	public void setErrMessage(String errMessage) {
		this.errMessage = errMessage;
	}

	private String errMessage;

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

	public String getName() {
		return name;
	}

	/**
	 * 登录验证
	 * @return
	 */
	public String login() {

		if (name.equals("cai") && "cai".equals(pass)) {
			return "login";
		}
		this.setErrMessage("您的用户名称和密码不符合。");
		return "failure";
	}
}


4、修改WebRoot\WEB-INF中的文件

   4.1、web.xml文件修改后内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	version="2.4">
	<session-config>
		<session-timeout>30</session-timeout>
	</session-config>
	<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>
</web-app>


  4.2、faces-config.xml文件修改后内容如下:

 

<?xml version="1.0"?><!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, 
Inc.//DTD JavaServer Faces Config 1.0//EN" 
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
	<application>
	<!-- 配置定义国际化语言 -->
		<locale-config>
			<default-locale>zh_CN</default-locale>
			<supported-locale>en_US</supported-locale>
		</locale-config>
	</application>
	<!-- 配置导航规则 -->
	<navigation-rule>
	<!-- 请求为 index.faces时,如果返回success,则重定向到login.jsp,静态规则 -->
		<from-view-id>/pages/index.jsp</from-view-id>
		<navigation-case>
			<from-outcome>success</from-outcome>
			<to-view-id>/pages/login.jsp</to-view-id>
			<redirect/>
		</navigation-case>
	</navigation-rule>
	<navigation-rule>
	<!-- 请求为login.faces时,如果返回为login,则跳转到welcome.jsp ,返回failure时跳转到login.jsp-->
		<from-view-id>/pages/login.jsp</from-view-id>
		<navigation-case>
			<from-outcome>login</from-outcome>
			<to-view-id>/pages/welcome.jsp</to-view-id>
		</navigation-case>
		<navigation-case>
			<from-outcome>failure</from-outcome>
			<to-view-id>/pages/login.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	<!-- 定义托管Bean, 有效范围为session -->
	<managed-bean>
		<managed-bean-name>user</managed-bean-name>
		<managed-bean-class>org.cai.UserBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
</faces-config>


5、添加国际化properties文件

此两文件均放在src目录下

   5.1 messages_en_US.properties

titleText=JSF Demo
hintText=Please input your name and password
zh_CNText=China
en_USText=English
nameText=name:
passText=password:
commandText=Submit

 

   5.2 messages_zh_CN.properties

titleText=JSF \u793A\u8303
hintText=\u8BF7\u8F93\u5165\u540D\u79F0\u4E0E\u5BC6\u7801
zh_CNText=\u4E2D\u6587
en_USText=\u82F1\u6587
nameText=\u540D\u79F0:
passText=\u5BC6\u7801:
commandText=\u63D0\u4EA4
titleText=JSF 示范
hintText=请输入名称与密码
zh_CNText=中文
en_USText=英文
nameText=名称:
passText=密码:
commandText=提交
 

6、在 WebRoot中创建文件夹pages,然后创建一下jsp文件

  6.1 index.jsp

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@page contentType="text/html;charset=UTF-8"%>
<f:view>
	<f:loadBundle basename="messages" var="msgs" />
	<html>
<head>
<!-- 第一個JSF程式 -->
<title>选择语言</title>
</head>
<body>
	<center>
		<h:form>
			<h:selectOneRadio value="#{user.locale}">
				<f:selectItem itemValue="zh_CN" itemLabel="#{msgs.zh_CNText} " />
				<f:selectItem itemValue="en_US" itemLabel="#{msgs.en_USText} " />
			</h:selectOneRadio>
			<p>
				<h:commandButton value="#{msgs.commandText }" action="success" />
			<p>
		</h:form>
	</center>
</body>
	</html>
</f:view>


6.2 login.jsp

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@page	contentType="text/html;charset=UTF-8"%>
<f:view locale="#{user.locale}">
	<f:loadBundle basename="messages" var="msgs" />
<html>
<head>
<!-- 第一個JSF程式 -->
<title><h:outputText value="#{msgs.titleText }" /></title>
</head>
<body>
	<h:form>
	<!-- 名稱:  請輸入您的名稱   <h3>請輸入您的密码</h3>-->
		<h3><h:outputText value="#{msgs.hintText }" /></h3><h:outputText value="#{msgs.nameText }" /> <h:inputText value="#{user.name}" />
		<!-- 密码: -->
		 <h:outputText value="#{msgs.passText }" /><h:inputText value="#{user.pass}" />
		<p><!-- 送出 -->
			<h:commandButton value="#{msgs.commandText }" action="#{user.login }" />
		<p>
		<h2>
			<font color="red"> <h:outputText value="#{user.errMessage }" />
			</font>
		</h2>
	</h:form>
</body>
</html>
</f:view>


6.3、welcome.jsp

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ taglib
	uri="http://java.sun.com/jsf/html" prefix="h"%><%@page
	contentType="text/html;charset=GBK"%>
<html>
<head>
<title>第一個JSF程式</title>
</head>
<body>
	<f:view>
		<h:outputText value="#{user.name}" /> 您好! <h3>歡迎使用
			JavaServer Faces!</h3>
	</f:view>
</body>
</html>


7、在WebRoot\lib中增加jar包:

commons-beanutils-1.6.jar

commons-collections-3.1.jar

commons-digester-2.0.jar

jstl.jar

standard.jar

 

-------------------------------以上为使用eclipse创建一个简单示例----------------------------------------------

下面为发布项目到JBoss5.1.0 GA中,有两种方法发布:

1、通过eclipse ->Export :生成war包,然后把此war包放到jboss-5.1.0.GA\server\default\deploy\目录即可;

2、直接把项目的webRoot复制到jboss-5.1.0.GA\server\default\deploy\中,需要注意 ,如果项目的访问上下文为 jsfDemo,则 需要在

jboss-5.1.0.GA\server\default\deploy\下创建目录 jsfDemo.sar,然后在此目录中创建jsfDemo.war (此文件夹中的jsfDemo好像可以随便起名字,不要含有空格和中文即可),最后把WebRoot中的内容复制到jsfDemo.war中。

启动jboss-5.1.0.GA\bin\run.bat

http://localhost:8080/jsfDemo/pages/index.faces

注:

1、如果想通过ip访问,即http://192.168.0.4:8080/jsfDemo/pages/index.faces

则需要修改jboss-5.1.0.GA\server\default\deploy\jbossweb.sar\server.xml

中的<Connector protocol="HTTP/1.1" port="8080" "${jboss.bind.address}"

               connectionTimeout="20000" redirectPort="8443" /> 

为 <Connector protocol="HTTP/1.1" port="8080" address="192.168.0.4"
               connectionTimeout="20000" redirectPort="8443" />

 

不知道怎么放工程连接,如需要,联系我给发...

至此,估计应该可以了...

参考:http://caterpillar.onlyfun.net/Gossip/JSF/FirstJSF.htm

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值