这是struts2.xml配置文件
<action name="*Action" class="Action.LoginAction" method="{1}"><!-- 登录,使用通配符 -->
<result name="success">/main.jsp</result>
<result name="error">/index.jsp</result>
<result name="input">/index.jsp</result>
</action>
在登录页面时<s:form action="loginAction.action">可以指向指定的login方法,但在js里写AJAX方法时就不行了啊,到不了指定的方法:如下
                           var url="UpTypeAction.action";
xml.open("GET",url,true);
xml.onreadystatechange=dodep;
xml.send(null);
return true;
我试了一下没写ajax方法,就直接在javascript方法里转发,也进不了struts2.xml所指定的方法
是不是要使用struts2的通配符, 或要传递方法只能在<s:form action="???">里面写啊?是吗??求高手解答哦

解决方案 »

  1.   

    struts2.xml ??? 
    应该是 struts.xmlAJAX 没有问题的啊! 看抱错是什么?
      

  2.   

    问题一:你有没有在 struts.xml 里引入 struts2.xml这个文件,系统默认是只加载 struts.xml ;需在struts.xml 里引入struts2.xml才能用它里面配置的action。
    问题二:var url="UpTypeAction.action";  url的值在这里只是一个字符串,没有相对的访问路径,你否应该在"UpTypeAction.action" 的前面加上 http:// 之类的东西呢?
      

  3.   

    再补充一下,阁下这种逻辑的ajax提交是没问题的,
    阁下可以跟踪下程序的逻辑或者程序是否有问题。
      

  4.   

    我发错了,是struts.xml,我加了http://localhost:8080/Name/UpTypeAction.action,可还是没到指定的ACTION里去额,么回事列?
      

  5.   

    控制台没抱错,就直接进入到dodep方法里去了,但是我在后台的输出语句没有输出来,根本就没进方法哦
      

  6.   

    1.<s:form action="loginAction.action">看看输出的HTML是什么,对比一下你的url.
    2.你的xml怎么定义的.
      

  7.   

    统配符不是在struts2.xml里面写的吗没错啊
    下面的你是什么意思啊
      

  8.   

    ajax操作貌似没有经过StrustPrepareAndExecuteFilter处理,那就没办法去解析这个路径了
      

  9.   

    请注意命名规则:Action.LoginAction .为什么包名是 大写开头 ?loginAction.action, UpTypeAction.action为什么一个是小写开头,另一个是大写 ?
      

  10.   

    你的url是不是正确,[相对路径]/namespace/*Action.action
      

  11.   

    LZ确认UpTypeAction中有public String UpType(){}  这个方法?
    不能吧?可能是你的方法名大小写写错了,对不上,可能是你的方法返类型不对查查看反正我是没见过有大写字母开头的方法名