以下是一个项目的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>
<!-- 设置Spring的IoC容器管理Struts中的action -->
<constant name="struts.objectFactory" value="spring" /> <!-- main package中定义普通用户使用博客所使用action-->
<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>
<!-- 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>
我想问的是<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>这里的/admin是跳转到哪里,我没看到有名字是admin的action啊,那/admin到底是跳转到哪里呢

解决方案 »

  1.   

    应该还有一个 namespace 为 admin的package
      

  2.   

    是有啊
     <!--定义博主使用博客全部管理功能所使用action-->
        <package name="admin" namespace="/admin" extends="struts-default">
    那到底是调用admin里的哪个action呢
      

  3.   

    这个配置文件并没有配置/user/login跳转后的action,/admin将跳转到namespace"/admin"下 但没有配置相关的action  也就是运行时找不到相关的Action去处理它。下面说一下这么做的后果:由于找不到相关的action去处理它,这时struts2就会根据web.xml文件中配置的欢迎页面(如index.jsp)如果在/admin目录下找到index.jsp将跳转到该页面,若没有找到则将报错"There is no Action mapped for namespace /admin and action name " 。以前没遇到过这种情况,刚刚试验得到的结果。在以后的应用中我们最好还是要把配置文件写清楚。
      

  4.   


    说到点子上了,的确他是跳转到admin目录下的index.jsp,之前我就是不知道/admin是怎么起作用的多谢指点
      

  5.   

    在WEB-INF目录下,有个admin的文件夹,没有相应的权限是访问不了的,当然这个admin的自己创建的
      

  6.   

     <!-- 这里需要和Action里的属性名一致 -->  
     <param name="inputName">xmlStream </param> 
    这里"inputName"是指什么意思?xmlStream 又是指什么意思?
    到底哪一个需要和Action里的属性名一致?
    这里"inputName"可以换成别的吗?是哪里来的?
    求楼顶的解释