iomo1233
2008-05-23 09:11
浏览 241
已采纳

struts+spring+hibernate配置出现问题,求解答

struts-config.xml

[code="java"]<?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">







attribute="userForm"
input="/errors.jsp"
name="userForm"
path="/user"
scope="request"
type="com.yourcompany.struts.action.UserAction">



<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>
<message-resources parameter="cn.iomo.struts.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>

[/code]

web.xml

[code="java"]
<?xml version="1.0" encoding="UTF-8"?>

<!-- 加载spring支持 -->


contextConfigLocation

/WEB-INF/classes/applicationContext.xml



context

org.springframework.web.context.ContextLoaderServlet

1


action
org.apache.struts.action.ActionServlet

config
/WEB-INF/struts-config.xml


debug
3


detail
3

0


action
*.do


index.jsp


[/code]

applicationContext.xml
[code="java"]
<?xml version="1.0" encoding="UTF-8"?>
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 id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
        value="org.gjt.mm.mysql.Driver">
    </property>
    <property name="url"
        value="jdbc:mysql://localhost:3306/dream">
    </property>
    <property name="username" value="root"></property>
    <property name="password" value="123456"></property>
</bean>
<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
        <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">
                org.hibernate.dialect.MySQLDialect
            </prop>
            <prop key="hibernate.connection.autocommit">true</prop>
                                                                 <!-- 显示SQL语句 -->
            <prop key="hibernate.show_sql">true</prop>
                                                                  <!-- 自动提交 -->
        </props>
    </property>
    <property name="mappingResources">
        <list>
            <value>cn/iomo/vo/User.hbm.xml</value></list>
    </property></bean>  
    <!-- Hibernate模板 -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory">
         <ref bean="sessionFactory"/>
    </property>
</bean>
<bean id="userDAO" class="cn.iomo.dao.UserDAO"></bean>
<bean id="userDAOImpl" class="cn.iomo.dao.impl.UserDAOImpl" parent="userDAO">
   <property name="hibernateTemplate">
         <ref bean="hibernateTemplate"/>
   </property>
</bean>
<bean name="/user" class="cn.iomo.struts.action.UserAction">
    <property name="userDAO">
         <ref local="userDAO"/>
    </property>
</bean>  


[/code]
[b]问题补充:[/b]
<%@ 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"%>



JSP for UserForm form




用户注册





Username :

Password :

Sex : /html:radio
/html:radio

Email :



  
/html:form



当我点击SUBMIT的时候直接跳转到404窗口。应该是没有触发action,请问问题是出现在什么地方?
[b]问题补充:[/b]
还有什么地方可以进行改进,优化的。

[b]问题补充:[/b]
/*

  • Generated by MyEclipse Struts
  • Template path: templates/java/JavaClass.vtl */ package cn.iomo.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import cn.iomo.dao.UserDAO;
import cn.iomo.struts.form.UserForm;
import cn.iomo.vo.User;

/**

  • MyEclipse Struts
  • Creation date: 05-22-2008
  • XDoclet definition:
  • @struts.action path="/user" name="userForm" input="/errors.jsp" scope="request" validate="true"
  • @struts.action-forward name="success" path="success.jsp"
  • @struts.action-forward name="fail" path="fail.jsp"
    /
    public class UserAction extends DispatchAction {
    /

    • Generated Methods */

    /**

    • Method execute
    • @param mapping
    • @param form
    • @param request
    • @param response
    • @return ActionForward / private UserDAO userDAO; public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } /
    • 用户注册
    • */ public ActionForward regist(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { UserForm userForm = (UserForm) form;// TODO Auto-generated method stub User user = new User(); user.setUsername(userForm.getUsername()); user.setPassword(userForm.getPassword()); user.setSex(userForm.getSex()); user.setEmail(userForm.getEmail()); try { userDAO.registUser(user); request.getSession().setAttribute("username", user.getUsername()); return mapping.findForward("success"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return mapping.findForward("fail"); } } } [b]问题补充:[/b] struts配置文件里 这不对,改成

type="org.springframework.web.struts.DelegatingActionProxy">

已经改过了,不行

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • cyh_it 2008-05-29 09:47
    已采纳

    web.xml

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/classes/applicationContext.xml
        </param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • centgo 2008-05-23 09:55


    看看是不是你的路径写正确了。。。

    评论
    解决 无用
    打赏 举报
  • zhanglguo 2008-05-23 12:42

    问题原因肯定是多种多样的,而且开发环境的各种因素都有可能有这种事务。

    之前碰到过一次,是因为依赖的jar不全。

    解决的有效办法是自己找出原因:配置一下log4j,看看日志输出的错误信息。

    评论
    解决 无用
    打赏 举报
  • adamed 2008-05-23 13:11



    contextConfigLocation



    /WEB-INF/classes/applicationContext.xml




    这段删了

    评论
    解决 无用
    打赏 举报
  • adamed 2008-05-23 13:17

    你的Struts的action没有交给spring做代理。
    看下我的写法
    struts配置:
    type="org.springframework.web.struts.DelegatingActionProxy"
    validate="false">

    spring配置
    class="Action类名如com.myaction.MyAction">



    里面/action表示你的Action的路径为action.do
    注入的bean为action中需要注入属性bean

    评论
    解决 无用
    打赏 举报
  • etfish83 2008-05-24 12:51

    struts配置文件里
    type="com.yourcompany.struts.action.UserAction">这不对,改成

    type="org.springframework.web.struts.DelegatingActionProxy">

    评论
    解决 无用
    打赏 举报
  • iteye_803 2008-05-26 14:18

    报错的异常也贴出来啊

    把web.xml这段去掉

    contextConfigLocation

    /WEB-INF/classes/applicationContext.xml

    评论
    解决 无用
    打赏 举报
  • xtwcw12333 2008-05-27 09:14

    感觉是JAR依赖的问题。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题