今天使用strtus2 annotation,按照网上的配置,却总是报There is no Action mapped for namespace /book and action name book检查了配置,却没有发现哪里错,希望大虾们帮帮忙,下面是我的配置:
web.xml中<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<!-- 指定Action存放路径 -->
<!-- Action类需要满足:1.类名以Action结尾 -->
<!-- 2.实现了Action接口或者是extends ActionSupport -->
<init-param>
<param-name>actionPackages</param-name>
<param-value>org.ssh.web</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>BookAction代码:@ParentPackage(value="struts-default")
@Namespace("/book")
@Result(name="success",location="/index.jsp")
public class BookAction extends ActionSupport { @Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}}所用jar包
commons-fileupload-1.2.1.jar commons-io-1.3.2.jar freeer-2.3.15.jar ognl-2.7.3.jar
struts2-core-2.1.8.1.jar xwork-core-2.1.6.jar struts2-convention-plugin-2.1.8.1.jar

解决方案 »

  1.   

    把你怎么调用action的代码贴出来
      

  2.   

    我是地址栏直接输入的地址:
    http://localhost:8080/hah/book/book.action
      

  3.   

    Struts2 Annotation 注解配置也叫Zero Configuration(零配置),它省去了写xml文件的麻烦,可以直接在类叫进行配置,不用在java文件和xml文件中来回切换。1、Action级的注解  @ParentPackage--父包      该注解相当于<package name="login" extends="struts-default"></package>中的extends属性,例如:@ParentPackage(value="struts-default")  @Namespace----命名空间     该注解相当于<package name="login" extends="struts-default" namespace="logintest"></package>中的namespace属性,例如:@@Namespace(value="/longspace") @Result---转向该注解相当于<action name="login" class="com.lwsoft.action.LoginAction">
         <result name="success">/loginsuc.jsp</result>
     </action>中的 <result name="success">/loginsuc.jsp</result>
    例如:@Result(name="success",location="/loginsuc.jsp",type="redirect") !!!注意,在struts2.1.6中是location来转向页面,而在struts2.0.4是value属性  @Results    @Results({
             @Result(name="success",location="/usersuc.jsp"),
            @Result(name="error",location="/usererror.jsp")
      
       })来配置多个转向  以上是对struts2 注解简单的介绍,要想在Action上使用注解,还得修web.xml文件中的一些配置 <filter-name>struts</filter-name> 
                <filter-class> 
                    org.apache.struts2.dispatcher.FilterDispatcher 
                </filter-class> 
                   <!--  //固定格式-->
                    <param-name>actionPackages</param-name> 
                    com.struts2.action1,com.struts.action2-->
                    <param-value>com.struts2.action</param-value> 
                  </init-param> 
        </filter>                 <!--  action所在的包,如果在多个包中,用逗号隔开            <init-param> 到这里看看或许有帮助http://www.blogjava.net/kelven/articles/297335.html
      

  4.   

    哪个namespace只是起到防止命名冲突的作用,而在调用后台的acion的时候,只需要输入login.action就行了。
      

  5.   

    我这儿有两本关于struts的电子书 你可以去看看http://fileets.com/file/bedlhj/72b2dd43/