开发者学堂课程【Java Web开发系列课程 - Struts2框架入门:annotation 实现】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/537/detail/7328
annotation 实现
我们会发现使用注解会比较方便,注解的实现是通过插件来实现的,新建一个 new web project 叫做 19struts2_annotation,
在 struts 项目里面使用注解写起来比较舒服和简单,在使用了注解之后就不需要再写配置文件了。
首先把相应的包和配置先拷贝过来。
<filter>
<filter-name> struts2</filter name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter
–
name>struts2</filter name>
<ur
l
- pattern>/ *</ url-pattern>
</filter
-
mapping>
然后使用注解需要导入一个名为 convention 的插件,然后打开文档查看插件的用法。
在 plugin developers guide (插件开发的用法)里面找到 convention plugin,里面有一些介绍,怎么绑定怎么使用。
注意:
Action 需要继承 ActionSupport 类,Action 要放在以 .action 结尾的包中,这就是不同的框架,不同的框架叫法不一样。
创建一个 new java class 名为 helloaction。
首先继承 actionsupport。
继承他以后就可以配配置,会把所有的属性列出来,相应的语句对应
着相应的属性,可以配制多个,多个要使用大括号。如果要引用拦截
器的话还要再另外做拦截器的配置。
代码为:
import com . opensymphony . xwork2. ActionSupport;
@ParentPackage (value="struts-default")
@Namespace("/")
public class HelloAction extends ActionSupport {
@Action(value="/he1lo",
results={@Result (name= "success" , location="/index.jsp")})
public String execute(){
System. out . println("hello action");
return "success";
}
}
在这里 value="/he1lo" 和直接的 hello 效果是一样的,其中配置
result 是根据 word 文档里面的大纲来实现的。
com example. actions. HelloIWorld
package com. exanple. actions;
import com pensymphory. xwork2. ActionSupport ;
import org. apache. struts2. convention. annotation. Action;
import org. apache. struts2. convention. annotation.
Actions;
import org. apache. struts2. convention. annotation. Result ;
import org. apache. struts2. convention. annotation.
Results ;
public class HelloWorld ext ends ActionSupport {
@Action (value=*/different/url" ,
results= T@Result (name=" success", type=' httpheader",
parms {" status",“ 500”,"errorMessage", "Internal Error"})}
)
public String execute() {
return SUCCESS:
}
@Action(" /another/url")
public St ring doScmething() {
return SUC
C
ESS;
}
改完之后查看有没有报错,如果没有就打开 annotation 的网页,
会发现已执行,显示 hello action。
在 @Result (name= "success" , location="/index.jsp")
代码里
可能会有好多个,这也是麻烦的一个点。