细说如何整合spring+hibernate +js(第一大节)节选试读

细说如何整合spring+hibernate +jsf

原创作者:黄颢鹏

(注:转载前请注明作者名和出处,如违反该款作者保留追究权利

作者QQ25950329 Email:anh3000@qq.com

 

摘 要  本文从java web开发中的web.xml配置进行详细讲解,并结合实际代码讲述了如何整合spring+hibernate+jsf

关键词  spring hibernate jsf 整合

 

我平时习惯使用MyEclipse 6.5 Blue开发JAVA EEWeb应用,因此在下面讲述的代码和文件配置都是采用MyEclipse 6.5 Blue撰写的。其中本文所用到的类包版本是jsf1.2spring2.0hibernate3.1

1、 整合前的准备

1.1、新建项目

启动MyEclipse 6.5 Blue,选择菜单项目上的File->Web Project,在打开的对话框中选择J2EE Specification Level中的JAVA EE5.0,新建立一个Web开发项目名为Test。本文所用到的类包全部都放在项目的WebRoot->WEB-INF->lib下。

如果你整和后发现出现以下错误异常:

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener

org.springframework.beans.factory.BeanDefinitionStoreException: Line 4 in XML document from ServletContext resource [/WEB-INF/spring-hibernate-beans.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'beans'.

org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'beans'.

导致这样的异常多数是spring应用缺少了必要的类包,以下是必需包:

Spring包(9个):

commons-dbcp.jarcommons-pool.jarspring.jarspring-beans.jar

spring-context.jarspring-core.jarspring-dao.jar

spring-hibernate3.jarspring-web.jar

至于其它的JSFHibernate的类包比较简单,这里就不多说了。

1.2、配置JSF应用,实现JSF第一个的Hello World程序

1.2.1、基本的JSF配置

打开目录下WebRoot->WEB-INFweb.xml,可以看到如下xml代码:

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

<web-app version="2.5"

    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-app_2_5.xsd">

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

 </web-app>

其中<welcome-file>index.jsp</welcome-file>是网站欢迎的首页,这里不做改动,然后把以下代码放在<web-app></web-app>之间,至此整个项目的JSF配置完成了,

  <!--jsf的基本配置-->

    <servlet>

       <servlet-name>Faces Servlet</servlet-name>

       <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

       <load-on-startup>3</load-on-startup>

    </servlet>

    <servlet-mapping>

       <servlet-name>Faces Servlet</servlet-name>

       <url-pattern>*.faces</url-pattern>

    </servlet-mapping>  

现在,在MyEclipse 6.5 Blue中选中项目Test右击弹出彩单中选择New->JSP(Advanced Templates),新建立一个JSF文档,在新建文件对话框中的Template to use中选择Default JSF template,文件名默认为MyJsp.jsp,启动tomcat,打开游览器,输入地址http://127.0.0.1:8080/Test/MyJsp.faces,如看到This is my JSF JSP page.字样就说明JSF框架基本配置成功,当然这只是JSF 配置成功的第一步。

1.2.2JSF中的托管Bean配置

JSF中的托管Bean都是写在faces-config.xml中的,下面我们新建立第一个jsf的托管bean。 在项目的src文件夹中建立包com.test.jsf(注:该包是专门放jsf使用的类),在该包中新建一个类名为T1`,代码如下

package com.test.jsf;

 

public class T1 {

    private String msg;

 

    public void setMsg(String msg) {

       this.msg = msg;

    }

 

    public String getMsg() {

       this.msg="Hello,World";

       return this.msg;

    }

}

在项目目录WebRoot->WEB-INF中新建faces-config.xml文件,把以上代码写入faces-config.xml文件,

<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

<faces-config>

    <!-- managed-bean就是托管Bean -->

    <managed-bean>

        <managed-bean-name>t1</managed-bean-name>

    <!-- com.test.jsf.T1就是上面新建立的类 -->

        <managed-bean-class>com.test.jsf.T1</managed-bean-class>

        <managed-bean-scope>request</managed-bean-scope>

    </managed-bean>

</faces-config>

至于<managed-bean-scope>request</managed-bean-scope>中的request参数,还有session参数等等的选择,根据我的理解和jsp中的useBean中的参数类型的含义是差不多的,但这只是我个人理解,具体的含义请参看有关jsf的书籍。

然后我们改写前面的MyJsp.jsp文件,具体代码如下:

 

 <%@ page language="java" pageEncoding="ISO-8859-1"%>

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

   

    <title>My JSF 'MyJsp.jsp' starting page</title>

</head>

 

<body>

    <f:view>

   <h:form>

    <h:outputText escape="false" rendered="true" value="#{t1.msg}"/>

    </h:form>

    </f:view>

</body>

</html>

启动tomcat,打开游览器,输入地址http://127.0.0.1:8080/Test/MyJsp.faces,如看到Hello,World字样就说明JSF托管Bean配置成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值