《ServletAction.java》:
package wen;
import java.util.Map;
import java.util.Set;
import com.opensymphony.xwork2.ActionContext;
public class ServletAction {
public String execute(){
ActionContext ac=ActionContext.getContext();
Map paramMap=ac.getParameters();
String[] ids=(String[])paramMap.get("id");
String[] names=(String[])paramMap.get("name");
Map sessionMap=ac.getSession();
sessionMap.put("id", ids[0]);
sessionMap.put("name",names[0]);
return "toSession";
}}《struts.xml》;
<?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="wen" extends="struts-default">
     <action name="servletAction" class="wen.ServletAction">
<result name="toSession">/session.jsp</result>
</action>    </package>
</struts>
《idname.jsp》:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'idname.jsp' starting page</title>
  </head>
  <body>
    <form action="servletAction.action" method="post">
     ID:<input name="id"><br>
     Name:<input name="name"><br>
     <input type="submit" value="提交">
    </form>
  </body>
《session.jsp》:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'session.jsp' starting page</title>
  </head>
  <body>
    ${id }<br>
    ${name }
  </body>
</html>运行的时候。输入ID和name后无法再session.jsp中显示!
出现以下错误:
HTTP Status 404 - /ActionContextTest/servletAction.action--------------------------------------------------------------------------------type Status reportmessage /ActionContextTest/servletAction.actiondescription The requested resource (/ActionContextTest/servletAction.action) is not available.
--------------------------------------------------------------------------------Apache Tomcat/6.0.13

解决方案 »

  1.   

    很明显是路径问题,这里应该是找不到你的ServletAction,你检查一下吧
      

  2.   

    <result name="toSession">/session.jsp</result>
    我想是这个的路径写错了,如果session.jsp文件和你所填写ID和name的页面是同一个目录下的话,也就是同级目录,那就不要用“/”,把“/”去掉。
    改成<result name="toSession">session.jsp</result>
    就可以了.
      

  3.   

    http://localhost:8080/ActionContextTest/idname.jsp  我输入上面的地址可以运行正常。就是输了ID  name 后出现404错误。。找不出哪里的路径错了 
    <result name="toSession">/session.jsp</result>
    我想是这个的路径写错了,如果session.jsp文件和你所填写ID和name的页面是同一个目录下的话,也就是同级目录,那就不要用“/”,把“/”去掉。
    改成<result name="toSession">session.jsp</result>
    就可以了.
    改了还是一样的。。
    麻烦看仔细点,,我找了一下午都没找到,,心都凉了 。
      

  4.   

    如果是struts2的话应该是你的ServletAction 没有继承ActionSupport类的原因吧,你改下试试,应该可以吧
      

  5.   

    路径错了,你试着把 <form action="servletAction.action" method="post">
    这句改成<form action="/你的项目名/servletAction.action" method="post">
    试试~~
      

  6.   

    /ActionContextTest/servletAction.action 很明显,这个路径找不到。也就是说你的action找不到<form action="servletAction.action" method="post">
    和你这里有关系你改吧
      

  7.   

    public class ServletAction {
    public String execute(){
    ActionContext ac=ActionContext.getContext();
    Map paramMap=ac.getParameters();
    String[] ids=(String[])paramMap.get("id");
    String[] names=(String[])paramMap.get("name");
    Map sessionMap=ac.getSession();
    sessionMap.put("id", ids[0]);
    sessionMap.put("name",names[0]);
    return "toSession";
    }}action 没有继承struts提供的ActionSupport