`
godsend_jin
  • 浏览: 41902 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring+hibernate +struts开发问题总结

阅读更多

我写了一个用户注册的页面 regist.jsp 放在项目根目录下的form文件里面

  代码如下:

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
 
<html>
 <head>
  <title>JSP for RegistForm form</title>
 </head>
 <body>
  <html:form action="/regist.do">
      用户名 : <html:text property="username"/>
      <html:errors property="username"/><br/>
   密&nbsp;&nbsp;&nbsp;&nbsp;码 : <html:password property="password"/>
   <html:errors property="password"/><br/>
  
   <html:submit value="注册"/>&nbsp;&nbsp;&nbsp;&nbsp;
   <html:cancel value="取消"/>
  </html:form>
 </body>
</html>

2写一个跳转页面 success.jsp和failed.jsp

3  先搭建struts框架 希望你搭建过,成功后

4 搭建hibernate框架 (注意不要选默认的添加jar包,选择复制jar包) 我用的mysql数据库。

 在mysql数据库school下面建表 user

sql语句如下

CREATE TABLE `user` (
  `id` int(10) NOT NULL auto_increment,
  `username` varchar(20) NOT NULL,
  `password` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`)


) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1;

5. 用hibernate连接数据库。

     hibernate.cfg.xml文件如下

  <?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

 <session-factory>
  <property name="connection.username">zhxb</property>
  <property name="connection.url">
   jdbc:mysql://localhost:3306/school
  </property>
  <property name="dialect">
   org.hibernate.dialect.MySQLDialect
  </property>
  <property name="myeclipse.connection.profile">
   mysql_connection
  </property>
  <property name="connection.password">zhxb</property>
  <property name="connection.driver_class">
   com.mysql.jdbc.Driver
  </property>
 
  <!-- <mapping resource="hibernatedao/User.hbm.xml" />   -->
 
   <mapping resource="springdao/User.hbm.xml" />
 </session-factory>

</hibernate-configuration>

 

6 搭建spring框架

 如何搭建,自己到网上找,我只说错误发生的地方和整合的地方,注意要选择复制jar包,搭建好后,

进行strut和spring的整合。

修改struts-config.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="registForm" type="com.struts.form.RegistForm" />

  </form-beans>

  <global-exceptions />
  <global-forwards />
  <action-mappings >
  <action 

    input="/form/regist.jsp" 

    name="registForm"

   path="/regist"  (注意路径)

    scope="request"
       type="org.springframework.web.struts.DelegatingActionProxy">(注意这里是代理类,并不是真正的action类)
      <forward name="failed" path="/failed.jsp" />
      <forward name="success" path="/success.jsp" />
    </action>
  </action-mappings>

  <message-resources parameter="com.struts.ApplicationResources" />
 <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> (这个地方路径要正确)
  </plug-in>
</struts-config>


applicationContext.xml 配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans
 xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

    <bean name="/regist" class="com.struts.action.RegistAction">
     <property name="message">
     <value>spring整合sturts成功!</value>
     </property>
     <property name="userdao">
     <ref bean="UserDAOProxy"></ref></property>
      
    </bean>
 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="configLocation"
   value="classpath:hibernate.cfg.xml">
  </property>
 </bean>
 <bean id="man" name="man_name" class="springtest.Man">
  <property name="message">
   <value>你好!</value>
  </property>
 </bean>
 <bean id="UserDAO" class="springdao.UserDAO">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>
 <bean id="transactionManager"
 class="org.springframework.orm.hibernate3.HibernateTransactionManager">
 <property name="sessionFactory">
   <ref local="sessionFactory"/>
  </property>
 </bean>
 <bean id="UserDAOProxy"
  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
  <property name="transactionManager">
  <ref bean="transactionManager"/>
 </property>
 <property name="target">
  <ref local="UserDAO"/>
 </property>
 <property name="proxyTargetClass">
 <value>true</value>
 </property>
 <property name="transactionAttributes">
 <props>
 <prop key="*">PROPAGATION_REQUIRED</prop>
     </props>
 </property>
 </bean>
 </beans>

 action  类中execute的代码如下

public class RegistAction extends Action {
 /*
  * Generated Methods
  */
    private UserDAO userdao;
     private String message="struts action is execute";
 /**
  * Method execute
  * @param mapping
  * @param form
  * @param request
  * @param response
  * @return ActionForward
  */
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  RegistForm registForm = (RegistForm) form;// TODO Auto-generated method stub
  System.out.print(getMessage());
  User user=new User();
  user.setUsername(registForm.getUsername());
  user.setPassword(registForm.getPassword());
  UserDAO userdao=getUserdao();
  userdao.save(user);
  /*
  //开启事务
  Transaction tran=userdao.getSession().beginTransaction();
  userdao.save(user);
  //关闭事务
  tran.commit();
  //显示记录
  java.util.List<User> list=userdao.findAll();
  for(User o: list)
  {
   System.out.print("用户名"+o.getUsername()+"  ");
   System.out.println("密码"+o.getPassword());
  }
    */
 
 return mapping.findForward("success");
 }
 public String getMessage() {
  return message;
 }
 public void setMessage(String message) {
  this.message = message;
 }
 public UserDAO getUserdao() {
  return userdao;
 }
 public void setUserdao(UserDAO userdao) {
  this.userdao = userdao;
 }
}

发生错误的地方如下

出现404错误如 action is not avilable    如果前面都没问题可能是包问题 看你工程下面有 asm-2.2.3.jar 没有,如果有就删掉它 ,和asm.ja包冲突。

出现500错误或404错误, 如servelt action is not avliable 时

删除项目下面的hibernate-annotations.jar包。

分享到:
评论

相关推荐

    spring+struts2+hibernate+mybatis

    一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去

    Spring4.0+Hibernate4.0+Struts2.3整合案例

    Spring4.0+Hibernate4.0+Struts2.3整合案例:实现增删改查。 ===================== application.xml: xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    一个spring+struts+hibernate的例子

    一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流

    Struts+Spring+Hibernate开发实例.pdf

    标题和描述中指出的文档《Struts+Spring+Hibernate开发实例.pdf》包含了关于这三个流行的Java开源框架结合使用的示例代码和相关知识点。Struts负责视图与控制器部分,Spring负责业务逻辑层及依赖注入,Hibernate负责...

    图书管理系统spring+struts+hibernate

    《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、Struts和Hibernate。该系统利用MySQL作为数据库存储数据,提供了完整的数据库备份,确保了数据的安全性与...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    搭建 Struts2+Spring+Hibernate 框架中的 Action 单元测试环境需要解决三个主要问题:如何测试 Action?如何解决 JPA 中的 Lazy 机制?如何做用户 Session 管理?通过使用 StrutsSpringTestCase 和 junit4.jar,可以...

    DWR+Struts+spring+hibernate的订货系统

    DWR+Struts+spring+hibernate的订货系统,自己添加的dwr功能

    基于J2EE农业网 struts 2 +spring+ hibernate

    农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts 2 +spring+ hibernate农业网站 (ssh) struts ...

    简单struts+spring+hibernate搭建,配置

    简单struts+spring+hibernate搭建,配置,适合初学者

    Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解整合)

    Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解整合)Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解整合)Spring5.0.3 + Hibernate5.0.7 + Struts2.5.13全注解整合(SSH全注解...

    Spring+Hibernate+Struts资源共享系统

    在“Spring+Hibernate+Struts”系统中,Hibernate 负责处理数据库操作,将Java对象映射到数据库表,从而避免了繁琐的SQL代码编写。通过 Hibernate,开发者可以轻松地进行数据的增删改查操作,同时支持事务管理和缓存...

    struts+spring+hibernate三大框架整合

    SSH三大框架,即Struts、Spring和Hibernate,是Java Web开发中的常用技术组合,它们各自负责不同的职责:Struts作为MVC模式中的Controller层,处理用户请求并转发到相应的业务逻辑;Spring则作为核心容器,负责依赖...

    SSH整合jar包-spring5.0+hibernate5.1+struts2.5

    SSH整合是指将Spring、Hibernate和Struts这三大Java开源框架集成在一起,用于构建高效、灵活的企业级Web应用程序。这三个框架分别负责不同的职责:Spring作为应用的基石,提供依赖注入(DI)和面向切面编程(AOP),...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    通过这种方式,开发人员可以利用Struts2的控制层、Spring的服务层管理和依赖注入,以及Hibernate或Ibatis的数据访问能力,构建出高效且可扩展的Web应用。这些整合示例可以帮助初学者快速理解各个组件的交互方式,...

    Struts1+Spring+Hibernate整合注册登录(BLing原创).part1.rar

    Struts1+Spring+Hibernate整合注册登录(BLing原创).part1.rar 有二个文件

    struts2+spring+hibernate 配置文件

    struts2+spring+hibernate 配置文件struts2+spring+hibernate 配置文件

    java开发框架(Spring+Hibernate+Struts)

    Java开发框架中的Spring+Hibernate+Struts组合,被誉为Java开发的主流体系,具有显著的优势地位。这个框架组合的稳固性体现在其广泛的应用和社区支持,尤其是在企业级JavaEE应用中。Spring作为一款全面的轻量级应用...

    基于struts+spring+hibernate+oracle的移动ssh项目源码

    基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh...

    spring+hibernate+struts

    标题 "spring+hibernate+struts" 指涉的是一个经典的Java Web开发框架组合,也被称为SSH(Spring、Struts和Hibernate)三位一体。这个组合在2000年代中期到后期非常流行,用于构建企业级应用。下面将详细阐述这三个...

    spring+hibernate+struts教程

    spring+hibernate+struts教程

Global site tag (gtag.js) - Google Analytics