首页 新闻 会员 周边 捐助

struts-2.5.10.1____注解配置Action不能成功使用

0
悬赏园豆:100 [已解决问题] 解决于 2017-07-08 19:04

今天练习使用注解配置Action,对比网上的大牛的代码,自认为没有什么漏掉的了,结果就是不能成功,求大牛指点。下面是代码

1.Action类代码

package inno_inter;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;

import com.opensymphony.xwork2.ActionSupport;

@ParentPackage("struts-default")
@Namespace("/inno")
@Action(
        value="demo1",
        results={
                @Result(name="success",location="/WEB-INF/demo.jsp"),
                @Result(name="input",location="/WEB-INF/demo.jsp")
    })
/*@Results({
    @Result(name="success",location="/WEB-INF/demo.jsp"),
    @Result(name="input",location="/WEB-INF/demo.jsp")
})*/

public class Demo1 extends ActionSupport {

    private static final long serialVersionUID = 1L;

    public Demo1() {
        System.out.println("action创建");
    }
    @Override
    public String execute() throws Exception {
        System.out.println("action执行。。。");
        return super.execute();
    }
    //@Action("/demo1")
    public String demo(){
        return SUCCESS;
    }
}

2.web.xml文件代码

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" 
 3 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
 4   <welcome-file-list>
 5     <welcome-file>/WEB-INF/login.jsp</welcome-file>
 6   </welcome-file-list>
 7   
 8   <filter>
 9     <filter-name>struts2</filter-name>
10     <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
11     <init-param>
12         <param-name>actionPackage</param-name>
13         <param-value>inno_inter</param-value>
14     </init-param>
15   </filter>
16   <filter-mapping>
17     <filter-name>struts2</filter-name>
18     <url-pattern>/*</url-pattern>
19   </filter-mapping>
20 </web-app>

 

3.Struts.xml文件代码

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 
 3 <!DOCTYPE struts PUBLIC
 4     "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
 5     "http://struts.apache.org/dtds/struts-2.5.dtd">
 6 <struts>
 7     <!-- 请求参数的编码方式-->
 8     <constant name="struts.i18n.encoding" value="UTF-8"/>
 9     <!-- 指定被struts2处理的请求后缀类型。多个用逗号隔开-->
10     <constant name="struts.action.extension" value="action,do,htm"/>
11     <!-- 当struts.xml改动后,是否重新加载。默认值为false(生产环境下使用),开发阶段最好打开  -->
12     <constant name="struts.configuration.xml.reload" value="true"/>
13     <!-- 是否使用struts的开发模式。开发模式会有更多的调试信息。默认值为false(生产环境下使用),开发阶段最好打开  -->
14     <constant name="struts.devMode" value="false"/>  
15     <!-- 设置浏览器是否缓存静态内容。默认值为true(生产环境下使用),开发阶段最好关闭  -->
16     <constant name="struts.serve.static.browserCache" value="false" />
17     <!-- 指定由spring负责action对象的创建   
18     constant name="struts.objectFactory" value="spring" />
19     -->
20     <!-- 是否开启动态方法调用-->
21     <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
22     
23     <include file="struts-result.xml"/>
24     <!-- <include file="inno_inter/struts-inno.xml"/> -->
25     <package name="basePackage" extends="struts-default"/>
26     
27 </struts>    

4.jsp页面代码

<s:form action="/inno/demo1.action" method="post">
          <s:textfield name="id" lable="用户名:"></s:textfield>
          <s:textfield name="pwd" lable="密码:"></s:textfield>
          <s:submit label="提交"></s:submit>
      </s:form>

5.项目导入的jar包

 

 

折腾了一晚上了,我觉得没有什么问题了,网上各种使用注解的方法都试了,就是不行,是不是新版本的struts2对注解的使用有更改。

donfaquir的主页 donfaquir | 菜鸟二级 | 园豆:263
提问于:2017-07-02 20:00
< >
分享
最佳答案
-2

web.xml

 

<!-- struts2 配置 -->

<filter>

<filter-name>struts2</filter-name>

<filter-class>

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

</filter-class>

<init-param>

<param-name>actionPackages</param-name>

<param-value>com.yz.webapp.action</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

收获园豆:100
吉吉的城 | 小虾三级 |园豆:566 | 2017-07-08 17:46

我新建了一个项目,源代码粘贴过去,就能直接运行了,可能是这个项目的struts-xxx.xml 文件太多,影响了,也可能别的原因,web.xml 文件没有问题。我的是struts2.5.StrutsPrepareAndExecuteFilter类所在的包跟其他版本不同。 

donfaquir | 园豆:263 (菜鸟二级) | 2017-07-08 18:58
其他回答(1)
0

你好,struts.xml里边有include file = struts-result.xml能贴一下这个文件的内容吗 我也遇到这问题了 更新了struts版本注解就失效了

8brother | 园豆:202 (菜鸟二级) | 2017-07-09 14:35

那个没用。我是没有注释掉,跟注解这个功能没有关系,是我之前测试别的功能用的一个文件。注解是为了代替xml文件配置,用注解就最好不用配置文件。

 

支持(0) 反对(0) donfaquir | 园豆:263 (菜鸟二级) | 2017-07-09 21:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册