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>    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.devMode" value="true" />    <include file="example.xml"/>    <package name="json" namespace="/" extends="json-default">
        <default-action-ref name="index" />
        <action name="login" class="com.blogsystem.action.LoginAction">
            <result type="json"></result>
        </action>
    </package>    <!-- Add packages here --></struts>
json:
$.ajax({
type:"POST",
url:"login.action",
dataType:"json",
data:"name=john",
success:function(data){
alert("登陆成功");
}
为什么会报出Could not find action or result
There is no Action mapped for action name login. - [unknown location]
这个问题啊?

解决方案 »

  1.   

    url:"/login.action"不行的话url:"/项目名/login.action"
      

  2.   

    都不行啊
    这是我的HTML代码
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>后台登陆</title>
    <script language="javascript" src="../js/jquery-1.4.2.js"></script>
    <style type="text/css">
    body{
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    background-color: #016aa9;
    overflow:hidden;
    }
    .style1 {
    color: #000000;
    font-size: 12px;
    font-family:"微软雅黑";
    }
    .input1 {
    width:105px; 
    height:15px; 
    background-color:#292929;
    border:solid 1px #7dbad7;
    font-size:12px; 
    color:#6cd0ff;
    }
    </style>
    </head>
    <body>
    <table width="100%" cellpadding="0" cellspacing="0" border="0" align="center" style="padding:7%">
    <tr>
         <td>
             <table border="0px" width="1003" width="613" align="center" cellpadding="0" cellspacing="0">
                 <tr>
                     <td height="288" background="../images/login_01.gif"></td>
                    </tr>
                    <tr>
    <td>
                         <table height="100%" border="0" cellpadding="0" cellspacing="0">
                             <tr>
                                 <td background="../images/login_02.gif" height="78" width="414">&nbsp;</td>
                          <td background="../images/login_03.gif" height="50" width="206">
                                    
                                     <table border="0" cellpadding="0" cellspacing="2">
                                         <tr>
                                             <td><span class="style1">用&nbsp;&nbsp;&nbsp;户</span></td>
                                                <td colspan="2"><input type="text" class="input1" id="adminID" /></td>
                                                <td>&nbsp;</td>
                                            </tr>
                                            <tr>
                                             <td><span class="style1">密&nbsp;&nbsp;&nbsp;码</span></td>
                                                <td colspan="2"><input type="password" class="input1" id="adminPassword" /></td>
                                                <td>&nbsp;</td>
                                            </tr>
                                            <tr>
                                             <td height="18"><span class="style1">验证码</span></td>
                                                <td height="18"><input type="text" class="input1" style="height:15px; width:50px;" /></td>
                                                <td height="18"><input type="text" class="input1" style="height:15px; width:49px;" value="temp"/></td>
                                                <!-- javascript -->
                                                <script language="javascript">
                                                 $(document).ready(function(){
    $("#dl").click(function (){
    alert("dd");
    var adminID = $("#adminID").val();
    var adminPassword = $("#adminPassword").val();
    $.ajax({
    type:"post",
    url:"blogsystem/login.action",
    dataType:"json",
    data:"aaaaaaaaaaaaaaa",
    success:function(data){
    alert("登陆成功");
    }
    });
    });
                                                     });
                                                </script>
                                                <td height="18"><a href="main.html"><img src="../images/dl.gif" width="49" height="18" border="0" id="dl" /></a></td>
                                            </tr>
                                        </table>
                        
                                    </td>
                          <td background="../images/login_04.gif" height="78" width="383">&nbsp;</td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                    <tr>
                     <td background="../images/login_05.gif" height="192">&nbsp;</td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
    <form action="temp.action" method="post">
    <input type="submit" value="submit" />
    </form>
    </body>
    </html>
      

  3.   

    <result type="json"></result>[/color]后面没有跳转的jsp页面,当然会报错了
      

  4.   

    你的json jar包有没有啊,jar全不?
      

  5.   

    url那里建议用<s:url>进行url重写.!
    解答ls的问题, json类型的视图,不写的话默认是把Action作为一个对象去返回,如果你要返回Action中的属性, 设置下<param name="root">your attr</param>
      

  6.   

    <s:url action="login" namespace="/">
      

  7.   

    struts.xml 文件 放在src下 否则会 严重Could not find action or result
    There is no Action mapped for action name login. - [unknown location]
      

  8.   

    简单的说 struts.xml代码没有错的话 就是找不到struts.xml
      

  9.   

      <package name="json" namespace="/" extends="json-default">
      <default-action-ref name="index" />
      <action name="login" class="com.blogsystem.action.LoginAction">
      <result type="json"></result>
      </action>
      </package>
    这里少了  extends="Struts-default"  默认
    光只extends ="json-default"  是不行的
      

  10.   

    json-default已经继承了struts-default了.!  楼上是不是没看到插件包里面的配置.?
      

  11.   

    这个问题应该是有jar包没加
    可能是Struts处理json的那jar包   具体忘记了
      

  12.   

    相对路径的问题,页面中加入<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <base href="<%=basePath%>">
      

  13.   

    您好,我遇到的问题跟你的一模一样,现在终于解决了,是因为没加入struts2-json-plugin.jar这个包的缘故
      

  14.   

    应该是少jar包造成的 代码都没什么问题
      

  15.   

    如果没有缺少什么jar的话,那么就是你在action里面返回数据的时候出现问题了。如果需要返回json数据,直接用response发送回数据,然后action直接return null就可以了。
      

  16.   

    $.ajax({
    type:"post",
    url:"blogsystem/login.action",
    dataType:"json",
    data:"aaaaaaaaaaaaaaa",
    success:function(data){
    alert("登陆成功");
    }
    });
    =======================================
    <package name="json" namespace="/" extends="json-default">
      <default-action-ref name="index" />
      <action name="login" class="com.blogsystem.action.LoginAction">
      <result type="json"></result>
      </action>
      </package>==========================================
    一看就是抄人家的代码,页面中你指定了action的命名空间为blogsystem,在配置文件中你确配置成namespce="/",它怎么找的到呢