这个是struts.xml的配置<package name="user" namespace="/user" extends="struts-default">
<action name="user_*" class="wxm.web.action.UserAction"
method="{1}">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="token" />
<result name="register">/register.jsp</result>
<result name="login">/login.jsp</result>
<result name="invalid.token">/login.jsp</result>
</action>这个是javascipt的一部分$.ajax({
url:"user/user_checkName.action",
type:"POST",
data:"userName=" + loginName,
success:function (data, textStatus) {
alert(data);
if(data != ""){
$("#userNameexist").text("用户名已存在");
$('#userName').focus();
return;
       }else
       {
        $("#userNameexist").text("");
       }
}
});这个是UserAction.java的所有方法。public String checkName() {
boolean flag = true;
try {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
System.out.println(userName);
for (User user : userService.getAllUser()) {
if (userName.equals(user.getUserName())) {
flag = false;
}
}
if (!flag) {
writer.println("false");
}
} catch (IOException e) {
e.printStackTrace();
}
return "register";
}public String addUser() {
User user = new User(userName);
user.setPassword(password);
userService.addUser(user);
return "login";
}
问题来了,就是我的ajax请求的是user/user_checkName.action这个路径,但是他异步提交的时候不走进checkName()方法里,但是当我单独写一个Action来接收异步请求的时候却是能行得通的。请问高手怎么解决这个问题。是不是通配符的Action名不能作为URL? 那怎么办啊 一个ajax一个类吗,那会写死人的。求指教求指教~~~~

解决方案 »

  1.   

    自己想到一个解决方法 不知道大家是不是这样用~
    struts配置文件中 多写一次这个Action然后checkName方法的返回值为null<action name="user_*" class="wxm.web.action.UserAction"
    method="{1}">
    <interceptor-ref name="defaultStack" />
    <interceptor-ref name="token" />
    <result name="login">/login.jsp</result>
    <result name="invalid.token">/login.jsp</result>
    </action><action name="checkName" class="wxm.web.action.UserAction"
    method="checkName" />
    还有其他方法吗?让ajax认出user_xxx.action的方法~
      

  2.   

    回1楼页面在根目录下,但是没有报找不到Action的错误。
      

  3.   

    <action name="checkName" class="wxm.web.action.UserAction"
                method="checkName" />
      

  4.   

    LZ通配符配置明显没错,你这样配置,整个项目的配置文件得多长啊。
    url:"user/user_checkName",这个试试
      

  5.   

    还有一个问题,你ajax请求的url是否正确