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 <nobr onmouseover="kwE(event,0, this);" oncontextmenu="return false;" id="key0" onmousemove="kwM(0);" onmouseout="kwL(event, this);" onclick="return kwC();" target="_blank" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">java</nobr>.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混合编程(图五) * <nobr onmouseover="kwE(event,4, this);" oncontextmenu="return false;" id="key4" onmousemove="kwM(4);" onmouseout="kwL(event, this);" onclick="return kwC();" target="_blank" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">技术</nobr>支持: <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 主要是工具生成 的,只是将配置文件路径改下,<nobr onmouseover="kwE(event,5, this);" oncontextmenu="return false;" id="key5" onmousemove="kwM(5);" onmouseout="kwL(event, this);" onclick="return kwC();" target="_blank" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">代码</nobr>如下:
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混合编程(图五)     &nb

你可能感兴趣的:(spring,编程,Hibernate,MyEclipse,struts)