save.jsp  Code<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>Save User</title>  </head>
  
  <body> <h1><font color="red">Save User</font></h1>

<s:form action="saveUser">
<s:textfield name="user.firstname" label="%{getText('firstname')}"></s:textfield>
<s:textfield name="user.lastname" label="%{getText('lastname')}"></s:textfield>
<s:textfield name="user.age" label="%{getText('age')}"></s:textfield>
<s:submit></s:submit>
</s:form>
  </body>
</html>struts.xml  Code<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
<package name="user" extends="struts-default">
<action name="saveUser" class="saveUserAction">
<result name="success" type="redirect">listUser.action</result>
<result name="input">/save.jsp</result>
</action>
</package>
</struts>spring的applicationContext.xml Code<bean id="saveUserAction" class="com.test.action.user.SaveUserAction">
    <property name="service" ref="userService"></property>
</bean>

listUser.action还没有进行配置,可以不看,问题是出在当点击save.jsp页面的sumbit按钮后,直接跳转到404页面,我使用的是spring对saveUserAction进行配置的。错误信息如下:
HTTP Status 404 - /mytest/saveUsertype Status reportmessage /mytest/saveUserdescription The requested resource (/mytest/saveUser) is not available环境是Myeclipse8.5,Tomcat6,struts2.0.14 一直都是找不到saveUser,求高手指点啊!!!

解决方案 »

  1.   

    struts2要在struts.xml中配置相应的action!!
      

  2.   


    struts.xml Code<?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
      "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
    <package name="user" namespace="/mytest" extends="struts-default">
    <action name="saveUser" class="saveUserAction">
    <result name="success" type="redirect">listUser.action</result>
    <result name="input">/save.jsp</result>
    </action> 
    </package>
    </struts>
      

  3.   


    能说的明白一些吗?我的struts.xml文件里配置了action啊,难道
    <action name="saveUser" class="saveUserAction">
    <result name="success" type="redirect">listUser.action</result>
    <result name="input">/save.jsp</result>
    </action> 
    这个使用class="saveUserAction"别名的方法不是吗?
      

  4.   

    <s:form action="saveUser">应该写成<s:form action="saveUser.action">
      

  5.   

    <s:form action="saveUser">应该写成<s:form action="saveUser.action"> ,要不然怎么让struts2其作用啊。
      

  6.   

    <action name="saveUser" class="saveUserAction">
    这是别名?做和spring的整合吧,那实体类要在spring配置文件中做好定义
      

  7.   


    spring里已经配置了别名,我贴的spring代码里有的<bean id="saveUserAction" class="com.test.action.user.SaveUserAction">
      <property name="service" ref="userService"></property>
    </bean>
      

  8.   

    什么意思,初学S2SH对于配置的东西不是很懂,是按照教学视频做的,请说明下,谢谢
      

  9.   

    加了.action也会报错
    HTTP Status 404 - There is no Action mapped for namespace / and action name saveUser.type Status reportmessage There is no Action mapped for namespace / and action name saveUser.description The requested resource (There is no Action mapped for namespace / and action name saveUser.) is not available.
    我在想是不是要加上一个.action的拦截器啊?还是struts2会自动识别的
      

  10.   

    <package name="user" extends="struts-default">
    这里加上命名空间看看
      

  11.   

    你那个class里面saveUserAction的首字母也小写的?还有,你的struts的拦截目标是什么啊,一般是*.do或者*.action啥的,就是要自己配好,,你就写了一个action的名字,没有写"."后面的东西,怎么让你的struts拦截到这个请求路径。
      

  12.   

    struts.xml 配置有问题!
    好好了解一下它的配置
      

  13.   

    struts.xml检查了,好像没问题啊,大哥给指点一下吧。
      

  14.   

    struts里怎么配置的 ,你把action交给spring初始化 struts里有加  <constant name="struts.objectFactory" value="spring"></constant>
      

  15.   

    最近有点忙,没时间看先感谢这么多朋友帮忙想办法。struts.xml配置内容我贴了出来就在最上面。加了namespace也是不行的,还是找不到,之前就试过了。加上.action会报错,错误在12楼,我看从网页上查看过页面源代码,里面的.action其实已经被自动加上去了。我是按照视频里的步骤去配的,视频使用的是myeclipse6.5开始配置的时候就说最好跟视频里使用相同的版本,要不然出错很可能是工具的原因,结果配完还真错了,上述方法都试了下,还是不行等书到了,好好看下
      

  16.   

    1。你的Action是Spring管理的,但是你的spring和struts整合了么?   
     <!-- 指定Struts 2默认的ObjectFactory Bean,该属性默认值是spring -->
    <constant name="struts.objectFactory" value="spring"/>
    <!-- 该属性指定整合Spring框架时,是否缓存Bean实例,该属性只允许使用true和 false两个属性值,它的默认值是true。通常不建议修改该属性值 -->
    <constant name="struts.objectFactory.spring.useClassCache" value="true"/>
    <!-- 指定spring框架的装配模式装配方式有: name, type, auto, and constructor (name 是默认装配模式)  -->
    <constant name="struts.objectFactory.spring.autoWire"
    value="name"/> 
      

  17.   

    2。mytest应该是你的应用名。 所以不需要加命名空间。。默认的就好。