服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

myeclipse和struts2+spring+hibernate混合编程

    struts2释出已经很久了,虽然自己现在作gui开发,不过有时间还是学习下web开发,现在就将我使用myeclipse工具应用struts2 + spring + hibernate 实现crud操作的步骤一一纪录下来,为初学者少走弯路略尽绵薄之力!
       首先,myeclipse中web工程目录结构如下图:

myeclipse和struts2+spring+hibernate混合编程(图一)


    使用myeclipse开发hibernate和spring的操作我就不详细说了,网上的教程很多,如果有不明白的可以咨询我,呵呵.
    其中持久类abstracttest,test,testdao,test.hbm.xml都是myeclipse的hibernate工具生成的.testaction类是struts2的核心处理类,代码如下:
myeclipse和struts2+spring+hibernate混合编程(图二)package com.yangqiang.strutsdemo.web;
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图二)import java.util.collection;
myeclipse和struts2+spring+hibernate混合编程(图二)import java.util.list;
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图二)import org.apache.log4j.logger;
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图二)import com.opensymphony.xwork2.actionsupport;
myeclipse和struts2+spring+hibernate混合编程(图二)import com.yangqiang.strutsdemo.domain.test;
myeclipse和struts2+spring+hibernate混合编程(图二)import com.yangqiang.strutsdemo.domain.testdao;
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图三)myeclipse和struts2+spring+hibernate混合编程(图四)/** *//**
myeclipse和struts2+spring+hibernate混合编程(图五) * 描述:
myeclipse和struts2+spring+hibernate混合编程(图五) * @author stone yang  创建日期:2007-4-24 
myeclipse和struts2+spring+hibernate混合编程(图五) * @version pattern study
myeclipse和struts2+spring+hibernate混合编程(图五) * 技术支持: <a href="http://blog.csdn.net/yq76034150">http://blog.csdn.net/yq76034150</a>
myeclipse和struts2+spring+hibernate混合编程(图六) */
myeclipse和struts2+spring+hibernate混合编程(图三)myeclipse和struts2+spring+hibernate混合编程(图四)public class testaction extends actionsupport ...{
myeclipse和struts2+spring+hibernate混合编程(图五)    private static final logger log = logger.getlogger(testaction.class);
myeclipse和struts2+spring+hibernate混合编程(图五)
myeclipse和struts2+spring+hibernate混合编程(图五)    private integer id;
myeclipse和struts2+spring+hibernate混合编程(图五)    private integer[] ids;
myeclipse和struts2+spring+hibernate混合编程(图五)    protected testdao testdao;
myeclipse和struts2+spring+hibernate混合编程(图五)    private test test;
myeclipse和struts2+spring+hibernate混合编程(图五)    private collection<test> testcoll;
myeclipse和struts2+spring+hibernate混合编程(图五)    
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    /** *//**
myeclipse和struts2+spring+hibernate混合编程(图五)     * 描述 return 返回 ids。
myeclipse和struts2+spring+hibernate混合编程(图五)     * @author stone yang
myeclipse和struts2+spring+hibernate混合编程(图五)     * @date 2007-4-24
myeclipse和struts2+spring+hibernate混合编程(图九)     */
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public integer[] getids() ...{
myeclipse和struts2+spring+hibernate混合编程(图五)        return ids;
myeclipse和struts2+spring+hibernate混合编程(图九)    }
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    /** *//**
myeclipse和struts2+spring+hibernate混合编程(图五)     * 描述:设置ids的值。
myeclipse和struts2+spring+hibernate混合编程(图五)     * @param ids
myeclipse和struts2+spring+hibernate混合编程(图五)     * @author stone yang
myeclipse和struts2+spring+hibernate混合编程(图五)     * @date 2007-4-24
myeclipse和struts2+spring+hibernate混合编程(图九)     */
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public void setids(integer[] ids) ...{
myeclipse和struts2+spring+hibernate混合编程(图五)        this.ids = ids;
myeclipse和struts2+spring+hibernate混合编程(图九)    }
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    /** *//**
myeclipse和struts2+spring+hibernate混合编程(图五)     * 描述 return 返回 testcoll。
myeclipse和struts2+spring+hibernate混合编程(图五)     * @author stone yang
myeclipse和struts2+spring+hibernate混合编程(图五)     * @date 2007-4-24
myeclipse和struts2+spring+hibernate混合编程(图九)     */
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public collection<test> gettestcoll() ...{
myeclipse和struts2+spring+hibernate混合编程(图五)        return testcoll;
myeclipse和struts2+spring+hibernate混合编程(图九)    }
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    /** *//**
myeclipse和struts2+spring+hibernate混合编程(图五)     * 描述:设置testcoll的值。
myeclipse和struts2+spring+hibernate混合编程(图五)     * @param testcoll
myeclipse和struts2+spring+hibernate混合编程(图五)     * @author stone yang
myeclipse和struts2+spring+hibernate混合编程(图五)     * @date 2007-4-24
myeclipse和struts2+spring+hibernate混合编程(图九)     */
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public void settestcoll(collection<test> testcoll) ...{
myeclipse和struts2+spring+hibernate混合编程(图五)        this.testcoll = testcoll;
myeclipse和struts2+spring+hibernate混合编程(图九)    }
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    /** *//**
myeclipse和struts2+spring+hibernate混合编程(图五)     * 描述 return 返回 id。
myeclipse和struts2+spring+hibernate混合编程(图五)     * @author stone yang
myeclipse和struts2+spring+hibernate混合编程(图五)     * @date 2007-4-24
myeclipse和struts2+spring+hibernate混合编程(图九)     */
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public integer getid() ...{
myeclipse和struts2+spring+hibernate混合编程(图五)        return id;
myeclipse和struts2+spring+hibernate混合编程(图九)    }
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    /** *//**
myeclipse和struts2+spring+hibernate混合编程(图五)     * 描述:设置id的值。
myeclipse和struts2+spring+hibernate混合编程(图五)     * @param id
myeclipse和struts2+spring+hibernate混合编程(图五)     * @author stone yang
myeclipse和struts2+spring+hibernate混合编程(图五)     * @date 2007-4-24
myeclipse和struts2+spring+hibernate混合编程(图九)     */
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public void setid(integer id) ...{
myeclipse和struts2+spring+hibernate混合编程(图五)        this.id = id;
myeclipse和struts2+spring+hibernate混合编程(图九)    }
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    /** *//**
myeclipse和struts2+spring+hibernate混合编程(图五)     * 描述 return 返回 testdao。
myeclipse和struts2+spring+hibernate混合编程(图五)     * @author stone yang
myeclipse和struts2+spring+hibernate混合编程(图五)     * @date 2007-4-24
myeclipse和struts2+spring+hibernate混合编程(图九)     */
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public testdao gettestdao() ...{
myeclipse和struts2+spring+hibernate混合编程(图五)        return testdao;
myeclipse和struts2+spring+hibernate混合编程(图九)    }
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    /** *//**
myeclipse和struts2+spring+hibernate混合编程(图五)     * 描述:设置testdao的值。
myeclipse和struts2+spring+hibernate混合编程(图五)     * @param testdao
myeclipse和struts2+spring+hibernate混合编程(图五)     * @author stone yang
myeclipse和struts2+spring+hibernate混合编程(图五)     * @date 2007-4-24
myeclipse和struts2+spring+hibernate混合编程(图九)     */
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public void settestdao(testdao testdao) ...{
myeclipse和struts2+spring+hibernate混合编程(图五)        this.testdao = testdao;
myeclipse和struts2+spring+hibernate混合编程(图九)    }
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    /** *//**
myeclipse和struts2+spring+hibernate混合编程(图五)     * 描述 return 返回 test。
myeclipse和struts2+spring+hibernate混合编程(图五)     * @author stone yang
myeclipse和struts2+spring+hibernate混合编程(图五)     * @date 2007-4-24
myeclipse和struts2+spring+hibernate混合编程(图九)     */
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public test gettest() ...{
myeclipse和struts2+spring+hibernate混合编程(图五)        return test;
myeclipse和struts2+spring+hibernate混合编程(图九)    }
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    /** *//**
myeclipse和struts2+spring+hibernate混合编程(图五)     * 描述:设置test的值。
myeclipse和struts2+spring+hibernate混合编程(图五)     * @param test
myeclipse和struts2+spring+hibernate混合编程(图五)     * @author stone yang
myeclipse和struts2+spring+hibernate混合编程(图五)     * @date 2007-4-24
myeclipse和struts2+spring+hibernate混合编程(图九)     */
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public void settest(test test) ...{
myeclipse和struts2+spring+hibernate混合编程(图五)        this.test = test;
myeclipse和struts2+spring+hibernate混合编程(图九)    }
myeclipse和struts2+spring+hibernate混合编程(图五)    
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public string load() ...{
myeclipse和struts2+spring+hibernate混合编程(图五)        test = gettestdao().findbyid(id);
myeclipse和struts2+spring+hibernate混合编程(图五)           return success;
myeclipse和struts2+spring+hibernate混合编程(图九)       }
myeclipse和struts2+spring+hibernate混合编程(图五)
myeclipse和struts2+spring+hibernate混合编程(图五)       @suppresswarnings("unchecked")
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)    public string list() ...{
myeclipse和struts2+spring+hibernate混合编程(图五)           testcoll = gettestdao().findbyexample(new test());
myeclipse和struts2+spring+hibernate混合编程(图五)           return success;
myeclipse和struts2+spring+hibernate混合编程(图九)       }
myeclipse和struts2+spring+hibernate混合编程(图五)           
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)       public string store() ...{
myeclipse和struts2+spring+hibernate混合编程(图五)           gettestdao().merge(test);
myeclipse和struts2+spring+hibernate混合编程(图五)           return success;
myeclipse和struts2+spring+hibernate混合编程(图九)       }
myeclipse和struts2+spring+hibernate混合编程(图五)       
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)       public string remove() ...{
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)        for (int i = 0, size = ids.length; i < size; i++) ...{
myeclipse和struts2+spring+hibernate混合编程(图五)            gettestdao().delete(gettestdao().findbyid(ids[i]));
myeclipse和struts2+spring+hibernate混合编程(图九)        }
myeclipse和struts2+spring+hibernate混合编程(图五)        return success;
myeclipse和struts2+spring+hibernate混合编程(图九)    }
myeclipse和struts2+spring+hibernate混合编程(图五)
myeclipse和struts2+spring+hibernate混合编程(图五)    
myeclipse和struts2+spring+hibernate混合编程(图六)}
myeclipse和struts2+spring+hibernate混合编程(图二)

applicationcontext.xml 主要是工具生成 的,只是将配置文件路径改下,代码如下:
myeclipse和struts2+spring+hibernate混合编程(图二)<?xml version="1.0" encoding="utf-8"?>
myeclipse和struts2+spring+hibernate混合编程(图二)<!doctype beans public "-//spring//dtd bean//en" "http://www.springframework.org/dtd/spring-beans.dtd">
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图二)<beans>
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图二)    <bean id="struts"
myeclipse和struts2+spring+hibernate混合编程(图二)        class="org.springframework.orm.hibernate3.localsessionfactorybean">
myeclipse和struts2+spring+hibernate混合编程(图二)        <property name="configlocation">
myeclipse和struts2+spring+hibernate混合编程(图二)                        <!-- 改变了一下-->
myeclipse和struts2+spring+hibernate混合编程(图二)            <value>/web-inf/classes/hibernate.cfg.xml</value>
myeclipse和struts2+spring+hibernate混合编程(图二)        </property>
myeclipse和struts2+spring+hibernate混合编程(图二)    </bean>
myeclipse和struts2+spring+hibernate混合编程(图二)    <bean id="testdao"
myeclipse和struts2+spring+hibernate混合编程(图二)        class="com.yangqiang.strutsdemo.domain.testdao">
myeclipse和struts2+spring+hibernate混合编程(图二)        <property name="sessionfactory">
myeclipse和struts2+spring+hibernate混合编程(图二)            <ref bean="struts" />
myeclipse和struts2+spring+hibernate混合编程(图二)        </property>
myeclipse和struts2+spring+hibernate混合编程(图二)    </bean></beans>


struts.xml  (变化不大,写过以前struts配置文件的不难理解)
myeclipse和struts2+spring+hibernate混合编程(图二)<?xml version="1.0" encoding="utf-8"?>
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图二)<!doctype struts public
myeclipse和struts2+spring+hibernate混合编程(图二)    "-//apache software foundation//dtd struts configuration 2.0//en"
myeclipse和struts2+spring+hibernate混合编程(图二)    "http://struts.apache.org/dtds/struts-2.0.dtd">
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图二)<struts>
myeclipse和struts2+spring+hibernate混合编程(图二)    <package name="struts_crud" extends="struts-default" namespace="/test">
myeclipse和struts2+spring+hibernate混合编程(图二)        <action name="list" class="com.yangqiang.strutsdemo.web.testaction" method="list">
myeclipse和struts2+spring+hibernate混合编程(图二)            <result>list.jsp</result>
myeclipse和struts2+spring+hibernate混合编程(图二)        </action>
myeclipse和struts2+spring+hibernate混合编程(图二)        <action name="edit" class="com.yangqiang.strutsdemo.web.testaction" method="load">
myeclipse和struts2+spring+hibernate混合编程(图二)            <result>edit.jsp</result>
myeclipse和struts2+spring+hibernate混合编程(图二)        </action>
myeclipse和struts2+spring+hibernate混合编程(图二)        <action name="store" class="com.yangqiang.strutsdemo.web.testaction" method="store">
myeclipse和struts2+spring+hibernate混合编程(图二)            <result type="redirect">list.action</result>
myeclipse和struts2+spring+hibernate混合编程(图二)        </action>
myeclipse和struts2+spring+hibernate混合编程(图二)        <action name="remove" class="com.yangqiang.strutsdemo.web.testaction" method="remove">
myeclipse和struts2+spring+hibernate混合编程(图二)            <result type="redirect">list.action</result>
myeclipse和struts2+spring+hibernate混合编程(图二)        </action>
myeclipse和struts2+spring+hibernate混合编程(图二)    </package>
myeclipse和struts2+spring+hibernate混合编程(图二)</struts>

struts.properties
myeclipse和struts2+spring+hibernate混合编程(图二)struts.objectfactory = spring

web.xml
myeclipse和struts2+spring+hibernate混合编程(图二)<?xml version="1.0" encoding="utf-8"?>
myeclipse和struts2+spring+hibernate混合编程(图二)<web-app version="2.4" 
myeclipse和struts2+spring+hibernate混合编程(图二)    xmlns="http://java.sun.com/xml/ns/j2ee" 
myeclipse和struts2+spring+hibernate混合编程(图二)    xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" 
myeclipse和struts2+spring+hibernate混合编程(图二)    xsi:schemalocation="http://java.sun.com/xml/ns/j2ee 
myeclipse和struts2+spring+hibernate混合编程(图二)    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
myeclipse和struts2+spring+hibernate混合编程(图二)    <display-name>struts2 crud 例程</display-name>
myeclipse和struts2+spring+hibernate混合编程(图二)    
myeclipse和struts2+spring+hibernate混合编程(图二)    <context-param>
myeclipse和struts2+spring+hibernate混合编程(图二)        <param-name>contextconfiglocation</param-name>
myeclipse和struts2+spring+hibernate混合编程(图二)        <param-value>classpath*:*.xml</param-value>
myeclipse和struts2+spring+hibernate混合编程(图二)    </context-param>
myeclipse和struts2+spring+hibernate混合编程(图二)    
myeclipse和struts2+spring+hibernate混合编程(图二)    <listener>
myeclipse和struts2+spring+hibernate混合编程(图二)        <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>
myeclipse和struts2+spring+hibernate混合编程(图二)    </listener>
myeclipse和struts2+spring+hibernate混合编程(图二)    
myeclipse和struts2+spring+hibernate混合编程(图二)    <filter>
myeclipse和struts2+spring+hibernate混合编程(图二)        <filter-name>struts2</filter-name>
myeclipse和struts2+spring+hibernate混合编程(图二)        <filter-class>
myeclipse和struts2+spring+hibernate混合编程(图二)            org.apache.struts2.dispatcher.filterdispatcher
myeclipse和struts2+spring+hibernate混合编程(图二)        </filter-class>
myeclipse和struts2+spring+hibernate混合编程(图二)    </filter>
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图二)    <filter-mapping>
myeclipse和struts2+spring+hibernate混合编程(图二)        <filter-name>struts2</filter-name>
myeclipse和struts2+spring+hibernate混合编程(图二)        <url-pattern>/*</url-pattern>
myeclipse和struts2+spring+hibernate混合编程(图二)    </filter-mapping>
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图二)    <welcome-file-list>
myeclipse和struts2+spring+hibernate混合编程(图二)        <welcome-file>list.jsp</welcome-file>
myeclipse和struts2+spring+hibernate混合编程(图二)    </welcome-file-list>
myeclipse和struts2+spring+hibernate混合编程(图二)</web-app>
myeclipse和struts2+spring+hibernate混合编程(图二)

list.jsp
myeclipse和struts2+spring+hibernate混合编程(图三)myeclipse和struts2+spring+hibernate混合编程(图四)<%...@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8" %>
myeclipse和struts2+spring+hibernate混合编程(图三)myeclipse和struts2+spring+hibernate混合编程(图四)<%...@ taglib prefix="s" uri="/struts-tags" %>
myeclipse和struts2+spring+hibernate混合编程(图二)
myeclipse和struts2+spring+hibernate混合编程(图二)<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
myeclipse和struts2+spring+hibernate混合编程(图二)<html xmlns="http://www.w3.org/1999/xhtml">
myeclipse和struts2+spring+hibernate混合编程(图二)<head>
myeclipse和struts2+spring+hibernate混合编程(图二)    <title>book list</title>
myeclipse和struts2+spring+hibernate混合编程(图三)myeclipse和struts2+spring+hibernate混合编程(图四)    <style type="text/css">...
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)        table {...}{
myeclipse和struts2+spring+hibernate混合编程(图五)            border: 1px solid black;
myeclipse和struts2+spring+hibernate混合编程(图五)            border-collapse: collapse;
myeclipse和struts2+spring+hibernate混合编程(图九)        }
myeclipse和struts2+spring+hibernate混合编程(图五)        
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)        table thead tr th {...}{
myeclipse和struts2+spring+hibernate混合编程(图五)            border: 1px solid black;
myeclipse和struts2+spring+hibernate混合编程(图五)            padding: 3px;
myeclipse和struts2+spring+hibernate混合编程(图五)            background-color: #cccccc;
myeclipse和struts2+spring+hibernate混合编程(图九)        }
myeclipse和struts2+spring+hibernate混合编程(图五)        
myeclipse和struts2+spring+hibernate混合编程(图七)myeclipse和struts2+spring+hibernate混合编程(图八)        table tbody tr td {...}{
myeclipse和struts2+spring+hibernate混合编程(图五)            border: 1px solid black;
myeclipse和struts2+spring+hibernate混合编程(图五)            padding: 3px;
myeclipse和struts2+spring+hibernate混合编程(图九)        }
myeclipse和struts2+spring+hibernate混合编程(图六)    </style>
myeclipse和struts2+spring+hibernate混合编程(图二)</head>
myeclipse和struts2+spring+hibernate混合编程(图二)<body>    
myeclipse和struts2+spring+hibernate混合编程(图二)    <h2>book list</h2>
myeclipse和struts2+spring+hibernate混合编程(图二)    <s:form action="remove" theme="simple">
myeclipse和struts2+spring+hibernate混合编程(图二)        <table cellspacing="0">
myeclipse和struts2+spring+hibernate混合编
                </div>
            </div>
        </div>
    </div>
</div>

<div class=