web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
   <servlet>
     <servlet-name>action </servlet-name>
     <servlet-class>org.apache.struts.action.ActionServlet </servlet-class>
     <!-- <context-param> 
<param-name>contextConfigLocation </param-name> 
<param-value>/WEB-INF/classes/applicationContext.xml" </param-value> 
</context-param> 
    
    -->
     <init-param>
       <param-name>config </param-name>
       <param-value>/WEB-INF/struts-config.xml </param-value>
     </init-param>
     <init-param>
       <param-name>debug </param-name>
       <param-value>3 </param-value>
     </init-param>
     <init-param>
       <param-name>detail </param-name>
       <param-value>3 </param-value>
     </init-param>
     <load-on-startup>0 </load-on-startup>
   </servlet>
   <servlet-mapping>
     <servlet-name>action </servlet-name>
     <url-pattern>*.do </url-pattern>
   </servlet-mapping>
   <welcome-file-list>
     <welcome-file>index.jsp </welcome-file>
   </welcome-file-list>
</web-app>
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>  
   <form-beans >
     <form-bean name="userForm" type="org.tie.struts.form.UserForm" />
   </form-beans>  
   <action-mappings >
     <action path="/user"
    type="org.springframework.web.struts.DelegatingActionProxy"
     name="userForm">
       <forward name="success" path="/success.jsp" />
       <forward name="failure" path="/index.jsp" />
     </action><!--     type="org.springframework.web.struts.DelegatingActionProxy"-->
   </action-mappings>
   <message-resources parameter="org.tie.struts.ApplicationResources" />
   <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
     <set-property property="contextConfigLocation" 
    value="/WEB-INF/classes/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 id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/tie"> </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"> </ref>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>org/tie/vo/User.hbm.xml </value>
</list>
</property> </bean>
<bean id="userDAO" class="org.tie.dao.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"> </ref>
</property>
</bean>
<bean id="userService" class="org.tie.service.UserService"
abstract="false" singleton="false" lazy-init="default" 
autowire="default"  dependency-check="default">
<property name="userDAO">
<ref local="userDAO"> </ref>
</property>
</bean>
<bean name="/user" singleton="false" class="org.tie.struts.action.UserAction"
abstract="false"  lazy-init="default" 
autowire="default"  dependency-check="default">
<property name="userService">
<ref local="userService"> </ref>
</property>
</bean>
</beans>
UserService.java
package org.tie.service;import org.tie.dao.UserDAO;
import org.tie.vo.User;public class UserService {
private UserDAO userDAO;public User regist(User user){
userDAO.save(user);
return user;
}
public UserDAO getUserDAO() {
return userDAO;
}public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
}
UserAction.java
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package org.tie.struts.action;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.tie.service.UserService;
import org.tie.struts.form.UserForm;
import org.tie.vo.User;/** 
 * MyEclipse Struts
 * Creation date: 05-06-2008
 * 
 * XDoclet definition:
 * @struts.action path="/user" name="userForm" input="/index.jsp" scope="request" validate="true"
 */
public class UserAction extends Action {
/*
 * Generated Methods
 *//** 
 * Method execute
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return ActionForward
 */
private UserService userService;public UserService getUserService() {
return userService;
}public void setUserService(UserService userService) {
this.userService = userService;
}
public ActionForward execute(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());
System.out.println("//////////////////////////////////"+user);
user.setPassword(userForm.getPassword());
user.setEmail(userForm.getEmail());
userService.regist(user);
return mapping.findForward("success");
}
}
index.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> 
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
 
<html> 
<head>
<title>JSP for UserForm form </title>
</head>
<body>
<html:form action="/user">
    username :  <html:text property="username"/> <html:errors property="username"/> <br/>
password :  <html:password property="password"/> <html:errors property="password"/> <br/>
email :  <html:text property="email"/> <html:errors property="email"/> <br/>
<html:submit/> <html:cancel/>
</html:form>
</body>
</html>
运行的时候出现
HTTP Status 404 - Servlet action is not available--------------------------------------------------------------------------------type Status reportmessage Servlet action is not availabledescription The requested resource (Servlet action is not available) is not available.
--------------------------------------------------------------------------------Apache Tomcat/5.5.25
错误

解决方案 »

  1.   

    <html:form action="user.do">
      

  2.   

    <html:form action="/user.do">
      

  3.   

    改成<html:form action="/user.do">
    也没用呀弄了两天了,是照着一个视频做的
      

  4.   

    你的Action名字叫UserAction
    但是struts-config.xml配置文件里写的type="org.springframework.web.struts.DelegatingActionProxy" 
    名字不对,肯定找不到action类啊
    type的值应该是
    type="org.tie.struts.action.UserAction"是你的action类的地址
      

  5.   

    另外<html:form action="/user.do"> 
    最好写成这样!
      

  6.   

    <bean name="/user" singleton="false" class="org.tie.struts.action.UserAction"
    abstract="false"  lazy-init="default" 
    autowire="default"  dependency-check="default">  红色的地方错了吧
      

  7.   

    <action-mappings > 
          <action path="/user" 
        type="org.springframework.web.struts.DelegatingActionProxy
         name="userForm"> 
            <forward name="success" path="/success.jsp" /> 
            <forward name="failure" path="/index.jsp" /> 
          </action> 
    改成你对应的useraction页面访问user.do
      

  8.   

    <action-mappings >  
           <action path="/user"  
        type="org.springframework.web.struts.DelegatingActionProxy"  
         name="userForm">  
             <forward name="success" path="/success.jsp" />  
             <forward name="failure" path="/index.jsp" />  
           </action>  
    改为:
    <action-mappings >  
           <action path="/user"  
        type="org.tie.struts.action.UserAction"  
         name="userForm">  
             <forward name="success" path="/success.jsp" />  
             <forward name="failure" path="/index.jsp" />  
           </action>
      

  9.   

    这是struts+spring 结构的,<bean name="/user" singleton="false" class="org.tie.struts.action.UserAction"
    abstract="false"  lazy-init="default" 
    autowire="default"  dependency-check="default">   应该是你的spring 配置问题。
      

  10.   

    <action-mappings >  
            <action path="/user"  
        type="org.springframework.web.struts.DelegatingActionProxy"  
         name="userForm">  
              <forward name="success" path="/success.jsp" />  
              <forward name="failure" path="/index.jsp" />  
            </action>  
    改为:
    <action-mappings >  
            <action path="/user"  
        type="org.tie.struts.action.UserAction"  
         name="userForm">  
              <forward name="success" path="/success.jsp" />  
              <forward name="failure" path="/index.jsp" />  
            </action>
    这样改不对哇   struts+spring整合 就是要将type="org.tie.struts.action.UserAction" 改成type="org.springframework.web.struts.DelegatingActionProxy" 
      

  11.   

      呵呵 我不告诉你,应该是你的spring 配置问题乐吗?
      

  12.   

    spring 配置文件里面还需要配置 ACTION 你不知道吗?
      

  13.   

    applicationContext.xml 里面 添加action配置:
    <bean name="/user" class="org.tie.struts.action.UserAction">
    </bean>
      

  14.   

    applicationContext.xml 里面没有action配置嘛
    有的呀