[转]Struts2+hibernate例子

流程:

 

 

 

 

 

Hibernate的工作方式:

核心:Session,SessionFactory, configuration

操作:在myeclispse中,先添加Hibernate capabilities,然后就是在Database Explore中,找到数据库的表, 进行映射处理。

 

Struts2

关键:添加相应的jar包,配制web.xml,配制struts.xml

 

说明:Struts2+Hibernate时要注意,在相关的actionLoginAction)类中,一定要重写其构造函数LoginAction() { setDao(new OrderImpl())},注意要把操作类(DAO)的对象初始化,以便操作类进行相关操作。

另外:就是执行顺序问题,在struts.xml中的

<action name = “login” class = “com.test.action.LoginAction”  method = “save”>

 <result type = “redirect-action ”>/result.jsp</result>

</action>

如果action里有method的方法,则只会执行LoginAction中的save()方法,不会执行其execute()方法。如果action里没有method的方法,就会执行其execute()方法。不论有没有method的,程序都会先执行action的构造函数(LoginAction(),再去执行指定的方法。

 

 

 

 

 

Struts2+hibernate显示数据库中的数据:show.jsp

<%@ page language="java" contentType="text/html; charset=gbk"

    pageEncoding="gbk"%>

<%@ taglib prefix = "s"  uri = "/struts-tags" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gbk">

<title>Insert title here</title>

</head>

<body topmargin="30%">

<table border="1" width="80%" align="center">

<caption align="right"><input type="button" value="新增" onclick="location='save.jsp'"></caption>

<tr align="center">

  <td>订单编号</td><td>订单名称</td><td>订单数量</td><td>订单签署日期</td><td>操作</td>

</tr> 

<%-- 这种方式也可以显示数据,os是从操作类获得的数据集

<s:iterator value="os" id="user" status="status">

        <tr><td><s:property value="os[#status.index].orderid" />

        </td></tr>

    </s:iterator>

 --%> 

<s:iterator value="os" id="one" status="index">

  <tr align="center" bgcolor="${index.odd?'00aaff':'' }">

    <td>${orderid}</td><td>${ordername}</td>

    <td>${ordernum}</td>

   <td><s:date name="orderdate" format="yyyy/MM/dd"/></td>

<td><a href="one.action?order.orderid=${orderid}">修改</a>&nbsp;&nbsp;

    <a href="delete.action?order.orderid=${orderid}">删除</a></td>

</tr>

</s:iterator>       

</table>

</body>

</html>

 

 

 

 

 

 

数据增加:sava.jsp,body部分

<body topmargin="30%">

<s:form action="save" method="post">

<table border="1" cellspacing="0" align="center">

<caption align="center">   订单新增表</caption>

    <tr>

      <td><s:textfield name="order.ordername" label="订单名称" /> </td>

    </tr>

    <tr>

    <td><s:textfield name="order.ordernum" label="订单数量" /></td>

    </tr>

    <tr>

    <td><s:textfield name="order.orderdate" label="订单日期"/></td>

<%--<td><s:datetimepicker name="order.orderdate" toggleType="explode"   label="订单日期"   language="us_en"/>   </td> --%>

</tr>

    <tr>

       <td>s:submit value="提交" /></td>

</tr>

</table>

</s:form>

</body>

 

数据修改部分:update.jsp

<body topmargin="30%">

       <s:form action="update" method="post">

           <table border="1" cellspacing="0" align="center">   

           <caption align="center">订单新增表</caption>         

              <tr>

                     <td><s:textfield name="order.orderid" value="%{order.orderid}" readonly="true" label="订单名称"/></td>

              </tr>     

              <tr>

                     <td><s:textfield name="order.ordername" value="%{order.ordername}" label="订单名称"/></td>

              </tr>            

              <tr>

                     <td><s:textfield name="order.ordernum"  value="%{order.ordernum}" label="订单数量"/></td>

              </tr>

              <tr>

                     <td><s:textfield name="order.orderdate" value="%{order.orderdate}" readonly="true" label="订单日期"/></td>

              </tr>

              <tr>

                 <td><s:submit value="提交"/></td>

              </tr>

           </table>

       </s:form>

           </body>

 

控制的action: LoginAction.java

 

package com.test.action;

 

import java.util.ArrayList;

import java.util.List;

 

 

 

 

 

import com.opensymphony.xwork2.ActionSupport;

import com.test.dao.OrderDao;

import com.test.impl.OrderImpl;

import com.test.po.Orders;

 

public class LoginAction extends ActionSupport {

 

           

            private List os;

            private Orders order; 

            private OrderDao dao;

           public void setDao(OrderDao dao)

               {

                   this.dao = dao;

               }

               public LoginAction()

               {

                  

                   //构造函数,在构造loginAction时,初始化操作对象dao (setDao,OrderImpl)

                     os = new ArrayList();

                   setDao(new OrderImpl());

               }

              

              

               public OrderDao getDao()

               {

                   return dao;

               }

            

               public String save()

               {

                   boolean b = getDao().save(order);

                   if(b) return SUCCESS;

                   else return INPUT;

               }

              

               public String delete()

               {

                   boolean b = getDao().delete(order);

                   if(b) return SUCCESS;

                   else return INPUT;

               }

              

               public String update()

               {

                   boolean b = getDao().update(order);

                   if(b) return SUCCESS;

                   else return INPUT;

               }

              

               public String updateone()

               {

                   order = getDao().getOne(order);

                   if(order != null)

                       return "success";

                   else

                       return "input";

               }

           @Override

           public String execute() throws Exception {      

               os = getDao().getOrder();

                   if(os != null)

                       return "success";

                   else

                       return "error";

           }

           public List getOs() {      

                  return os;

           }

           public void setOs(List os) {  

              this.os = os;

           }

           public Orders getOrder() {

               return order;

           }

           public void setOrder(Orders order) {

              this.order = order;

           }

}

 

 

Struts.xml:

<?xml version="1.0" encoding="gbk" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

 

<constant name="struts.custome.i18n.resources" value="message"></constant>

<constant name="struts.i18n.encoding" value="gbk"></constant>

 

<package name="Hstruts2"  extends = "struts-default">

 

<action name = "login" class = "com.test.action.LoginAction">

<result name = "success">/show.jsp</result>

<result name = "error">/login.jsp</result>

</action>

 

<action name="save" class = "com.test.action.LoginAction" method ="save">

<result type="redirect-action">login</result>

<result name="input">/save.jsp</result>

</action>

 

        <action name="delete"    class="com.test.action.LoginAction" method="delete">                   

            <result type="redirect-action">login</result>

            <result name="input">/show.jsp</result>       

        </action>

        <action name="one"    class="com.test.action.LoginAction" method="updateone">                   

            <result>/update.jsp</result>

            <result name="input">/show.jsp</result>       

        </action>

  <action name="update"    class="com.test.action.LoginAction" method="update">                   

            <result type="redirect-action">login</result>

            <result name="input">/update.jsp</result>       

        </action>

 

</package>

</struts>

 

 

Web.xml

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

<web-app version="2.4"

    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">

 

<filter>

    <filter-name>struts2</filter-name>

    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

<filter-mapping>

    <filter-name>struts2</filter-name>

    <url-pattern>/*</url-pattern>

</filter-mapping>

 

    <filter>

      <filter-name>struts-cleanUP</filter-name>

      <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>

    </filter>

<filter-mapping>

       <filter-name>struts-cleanUP</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

</web-app>

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值