书上的一个例子,提交的时候找不到那个action,明明是定义好的,为什么找不到呢?HTTP Status 404 - No result defined for action com.v512.blog.action.CommentAction and result successtype Status reportmessage No result defined for action com.v512.blog.action.CommentAction and result successdescription The requested resource (No result defined for action com.v512.blog.action.CommentAction and result success) is not available.
Apache Tomcat/6.0.20
相关的配置:
spring:
<bean id="homeAction" class="com.v512.blog.action.HomeAction"
scope="prototype">
<property name="blogManager" ref="blogManager" />
<property name="categoryManager" ref="categoryManager" />
<property name="entryManager" ref="entryManager" />
<property name="commentManager" ref="commentManager" />
<property name="linkManager" ref="linkManager" />
</bean>struts.xml:<package name="main" extends="struts-default">
<global-results>
<result name="closed" type="redirect">/tempClosed.jsp
</result>
<result name="input" type="redirect">/list</result>
</global-results>
<!-- list,获取博文的列表 -->
<action name="list" class="homeAction" method="list">
<result name="success">/home.jsp</result>
</action>
<!-- load,获取特定的一篇博文 -->
<action name="load" class="homeAction" method="load">
<result name="success">/entry.jsp</result>
</action>
<!-- comment,评论特定的一篇博文 -->
<action name="comment" class="homeAction" method="comment">
<result name="success" type="redirect">${redirectCommentUrl}</result>
</action>
....其实要访问的action是HomeAction里的方法comment,并不是CommentAction,所以奇怪,它怎么会去找那个类?

解决方案 »

  1.   

    你调用写错了
    homeAction!comment
    具体不晓得,差不多就是这个意思
      

  2.   

    我调其它的也是直接写的,<action name="comment" class="homeAction" method="comment">,这不已经指明了action name是comment?方法是里面的comment?
      

  3.   

       <action name="list" class="homeAction" method="list">
                <result name="success">/home.jsp</result>
            </action>     name 是url的访问路径,method 是你调用的方法名称
          还有一个疑问,你的homeAction 是没放在包里面吗
          建议LZ 试下 http://localhost:8080/xxx/list.do 
      

  4.   

    No result defined for action com.v512.blog.action.CommentAction and result success action是HomeAction里的方法comment,并不是CommentAction;
    这就是你要找的.
    你在Sturts.xml把CommentAction配好又是什么效果,试试...
      

  5.   

    其实你可以不用这样配置
    <action name="home" class="homeAction" >
                <result name="success">/entry.jsp</result>
            </action>
     在调用的时候这样写home!方法名.action 就可以访问方法了
      

  6.   

    http://localhost:8080/xxx/list.do访问正常。
      

  7.   

    我知道,CommentAction已经配置了,在另一个package中用的,和homeAction不在一个package里。我把完整的贴出来吧。
    <?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>
    <!-- 设置Spring的IoC容器管理Struts中的action -->
    <constant name="struts.objectFactory" value="spring" /> <!-- main package中定义普通用户使用博客所使用action-->
    <package name="main" namespace="/" extends="struts-default">
    <global-results>
    <result name="closed" type="redirect">/tempClosed.jsp
    </result>
    <result name="input" type="redirect">/list</result>
    </global-results>
    <!-- list,获取博文的列表 -->
    <action name="list" class="homeAction" method="list">
    <result name="success">/home.jsp</result>
    </action>
    <!-- load,获取特定的一篇博文 -->
    <action name="load" class="homeAction" method="load">
    <result name="success">/entry.jsp</result>
    </action>
    <!-- comment,评论特定的一篇博文 -->
    <action name="comment" class="homeAction" method="comment">
    <result name="success" type="redirect">${redirectCommentUrl}</result>
    </action>
    <!-- subscribe,订阅博客 -->
    <action name="subscribe" class="subscribeAction">
    <result name="xml" type="stream">
    <!-- 设置输出内容的类型 -->
    <param name="contentType">text/xml</param>
    <!-- 这里需要和Action里的属性名一致 -->
    <param name="inputName">xmlStream</param>
    </result>
    </action>
    </package> <!--定义博主登录、注销、修改密码所使用action-->
    <package name="user" namespace="/user" extends="struts-default">
    <action name="login" class="userAction" method="login">
    <result name="success" type="redirect">/admin</result>
    <result name="input">/login.jsp</result>
    </action>
    <action name="logout" class="userAction" method="logout">
    <result name="success" type="redirect">/login.jsp</result>
    </action>
    <action name="changePassword" class="userAction" method="changePassword">
    <result name="success">/admin/changePassword.jsp
    </result>
    <result name="input">/admin/changePassword.jsp
    </result>
    </action>
    </package>
    <!--定义博主使用博客全部管理功能所使用action-->
    <package name="admin" namespace="/admin" extends="struts-default">
    <action name="editBlog" class="blogAction" method="load">
    <result name="success">/admin/editBlogConfig.jsp
    </result>
    </action>
    <action name="updateBlog" class="blogAction" method="update">
    <result name="success" type="redirect">/admin/editBlog
    </result>
    <result name="input" type="redirect">/admin/editBlog
    </result>
    </action>
    <action name="listCategorys" class="categoryAction" method="list">
    <result name="success">/admin/listCategorys.jsp
    </result>
    </action>
    <action name="addCategory" class="categoryAction" method="add">
    <result name="success" type="redirect">/admin/listCategorys
    </result>
    <result name="input">/admin/addCategory.jsp
    </result>
    </action>
    <action name="editCategory" class="categoryAction" method="load">
    <result name="success">/admin/editCategory.jsp
    </result>
    <result name="input" type="redirect">/admin/listCategorys
    </result>
    </action>
    <action name="updateCategory" class="categoryAction" method="update">
    <result name="success" type="redirect">/admin/listCategorys
    </result>
    <result name="input" type="redirect">/admin/listCategorys
    </result>
    </action>
    <action name="deleteCategory" class="categoryAction" method="delete">
    <result name="success" type="redirect">/admin/listCategorys
    </result>
    </action> <action name="listLinks" class="linkAction" method="list">
    <result name="success">/admin/listLinks.jsp
    </result>
    </action>
    <action name="addLink" class="linkAction" method="add">
    <result name="success" type="redirect">/admin/listLinks
    </result>
    <result name="input">/admin/addLink.jsp
    </result>
    </action>
    <action name="editLink" class="linkAction" method="load">
    <result name="success">/admin/editLink.jsp</result>
    <result name="input" type="redirect">/admin/listLinks
    </result>
    </action>
    <action name="updateLink" class="linkAction" method="update">
    <result name="success" type="redirect">/admin/listLinks
    </result>
    <result name="input" type="redirect">/admin/listLinks
    </result>
    </action>
    <action name="deleteLink" class="linkAction" method="delete">
    <result name="success" type="redirect">/admin/listLinks
    </result>
    </action> <action name="listEntrys" class="entryAction" method="list">
    <result name="success">/admin/listEntrys.jsp
    </result>
    </action>
    <action name="preAddEntry" class="entryAction" method="prepare">
    <result name="success">/admin/addEntry.jsp
    </result>
    </action>
    <action name="addEntry" class="entryAction" method="add">
    <result name="success" type="redirect">/admin/listEntrys
    </result>
    <result name="input" type="redirect">/admin/preAddEntry
    </result>
    </action>
    <action name="editEntry" class="entryAction" method="load">
    <result name="success">/admin/editEntry.jsp</result>
    <result name="input" type="redirect">/admin/listEntrys
    </result>
    </action>
    <action name="updateEntry" class="entryAction" method="update">
    <result name="success" type="redirect">/admin/listEntrys
    </result>
    <result name="input" type="redirect">/admin/listEntrys
    </result>
    </action>
    <action name="deleteEntry" class="entryAction" method="delete">
    <result name="success" type="redirect">/admin/listEntrys
    </result>
    </action> <action name="listComments" class="commentAction" method="list">
    <result name="success">/admin/listComments.jsp
    </result>
    </action>
    <action name="handleComments" class="commentAction" method="updateOrDelete">
    <result name="success" type="redirect">/admin/listComments
    </result>
    </action>
    </package>
    </struts>
      

  8.   


    <s:form action="comment" validate="true">
    <s:hidden name="comment.entry.id" value="%{entry.id}" />
    <s:textfield label="作者" name="comment.author"/>
    <s:textfield label="email" name="comment.email"/>
    <s:textarea label="内容" name="comment.content" rows="4" cols="40"/>
    <s:submit value="提交"/>
    </s:form>
    这是jsp的代码。
      

  9.   

    你ACTION里面的每一个方法都要配置 这样真的很麻烦哦
    还不如只配置一个action
    用这种方式调用的好
    <s:form action="home!comment.action" validate="true">
                                <s:hidden name="comment.entry.id" value="%{entry.id}" />
                                <s:textfield label="作者" name="comment.author"/>
                                <s:textfield label="email" name="comment.email"/>
                                <s:textarea label="内容" name="comment.content" rows="4" cols="40"/>
                                <s:submit value="提交"/>
                            </s:form>
      

  10.   

    <action name="home" class="homeAction">
                <result name="topage">${target}.jsp</result>
            </action>在action类里面返回的时候设置一下返回页面的名称就可以了
    例如private String target;
    //target的get和set方法
    //然后target的set方法里面设置一个页面名称
    return "topage";
      

  11.   

    你这种方法确实好用,但我的那种配置方式似乎也没错,但为什么就是进不去comment方法?而且别的方法都能进去,就它进不去,不会是bug吧。
      

  12.   


    估计是因为你有一个action的名字这个这个相似
      

  13.   

    struts.xml:现在都用struts_config.xml:
      

  14.   

    我来解决:这个问题是struts2.0的一个拦截器所报的错误,问题出现在前台的jsp页面,你仔细检查一下页面有没有struts的属性标签与后台action不一致的情况出现,或者属性的值不合理,也就是非正常的值。struts在装配时出现异常被拦截器拦截,希望对你们有帮助!!
      

  15.   

    将<s:form action="comment" validate="true">
    改为<s:form action="comment" validate="true" namespace="/">