myeclipse和struts2+spring+hibernate混合编程

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

使用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混合编程(图二)            <thead>
myeclipse和struts2+spring+hibernate混合编程(图二)                <tr>
myeclipse和struts2+spring+hibernate混合编程(图二)                    <th>勾选</th>
myeclipse和struts2+spring+hibernate混合编程(图二)                    <th>ID</th>
myeclipse和struts2+spring+hibernate混合编程(图二)                    <th>名称</th>
myeclipse和struts2+spring+hibernate混合编程(图二)                    <th>作者</th>
myeclipse和struts2+spring+hibernate混合编程(图二)                </tr>
myeclipse和struts2+spring+hibernate混合编程(图二)            </thead>
myeclipse和struts2+spring+hibernate混合编程(图二)            <tbody>
myeclipse和struts2+spring+hibernate混合编程(图二)                <s:iterator value="testColl">
myeclipse和struts2+spring+hibernate混合编程(图二)                    <tr>
myeclipse和struts2+spring+hibernate混合编程(图二)                        <td><input type="checkbox" name="ids" value='<s:property value="id" />' /></td>
myeclipse和struts2+spring+hibernate混合编程(图二)                        <td><s:property value="id" /></td>
myeclipse和struts2+spring+hibernate混合编程(图二)                        <td><s:property value="name" /></td>
myeclipse和struts2+spring+hibernate混合编程(图二)                        <td><s:property value="author" /></td>
myeclipse和struts2+spring+hibernate混合编程(图二)                        <td>
myeclipse和struts2+spring+hibernate混合编程(图二)                            <a href='<s:url action="Edit"><s:param name="id" value="id" /></s:url>'>
myeclipse和struts2+spring+hibernate混合编程(图二)                                Edit
myeclipse和struts2+spring+hibernate混合编程(图二)                            </a>
myeclipse和struts2+spring+hibernate混合编程(图二)                            &nbsp;
myeclipse和struts2+spring+hibernate混合编程(图二)                            <a href='<s:url action="Remove"><s:param name="ids" value="id" /></s:url>'>
myeclipse和struts2+spring+hibernate混合编程(图二)                                Delete
myeclipse和struts2+spring+hibernate混合编程(图二)                            </a>
myeclipse和struts2+spring+hibernate混合编程(图二)                        </td>
myeclipse和struts2+spring+hibernate混合编程(图二)                    </tr>
myeclipse和struts2+spring+hibernate混合编程(图二)                </s:iterator>
myeclipse和struts2+spring+hibernate混合编程(图二)            </tbody>
myeclipse和struts2+spring+hibernate混合编程(图二)        </table>
myeclipse和struts2+spring+hibernate混合编程(图二)        <s:submit value="Remove" /><a href="edit.jsp">Add Test</a>
myeclipse和struts2+spring+hibernate混合编程(图二)    </s:form>    
myeclipse和struts2+spring+hibernate混合编程(图二)</body>
myeclipse和struts2+spring+hibernate混合编程(图二)</html>

edit.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</title>
myeclipse和struts2+spring+hibernate混合编程(图二)</head>
myeclipse和struts2+spring+hibernate混合编程(图二)<body>    
myeclipse和struts2+spring+hibernate混合编程(图二)    <h2>
myeclipse和struts2+spring+hibernate混合编程(图二)        <s:if test="null == test">
myeclipse和struts2+spring+hibernate混合编程(图二)            Add Book
myeclipse和struts2+spring+hibernate混合编程(图二)        </s:if>
myeclipse和struts2+spring+hibernate混合编程(图二)        <s:else>
myeclipse和struts2+spring+hibernate混合编程(图二)            Edit Book
myeclipse和struts2+spring+hibernate混合编程(图二)        </s:else>
myeclipse和struts2+spring+hibernate混合编程(图二)    </h2>
myeclipse和struts2+spring+hibernate混合编程(图二)    <s:form action="Store" >
myeclipse和struts2+spring+hibernate混合编程(图二)        <s:hidden name="test.id" label="ID" />
myeclipse和struts2+spring+hibernate混合编程(图二)        <s:textfield name="test.name" label="书名" />
myeclipse和struts2+spring+hibernate混合编程(图二)        <s:textfield name="test.author" label="作者" />
myeclipse和struts2+spring+hibernate混合编程(图二)        <s:submit />
myeclipse和struts2+spring+hibernate混合编程(图二)    </s:form>
myeclipse和struts2+spring+hibernate混合编程(图二)</body>
myeclipse和struts2+spring+hibernate混合编程(图二)</html>
  

   








 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值