Struts2.0和2.1的零配置的区别
第一次写文章,写写我最近学的struts2的零配置吧~
最大的区别就是Struts2.1.6以后开始使用convention-plugin代替codebehind-plugin来实现struts的零配置,所以要额外引入struts2-convention-plugin-2.1.8.1.jar这个jar
?
?想起来还有一个不同,2.0要在web.xml中写一段配置,写2.1的时候我没在web.xml写相关配置,也能实现零配置?
? 有关属性我主要试了两个,Result和Action
?
Result?
1>2.0的value属性变成了2.1的location
2>type属性在2.1里必须要写成字符串类型的
例子是这样的
@Result(
?????? name="success",
?????? location="/suc.jsp",//2.0为value属性
?????? type="org.apache.struts2.dispatcher.ServletRedirectResult.class"//2.0没有引号
)
?
?
?
Action(action的其他用法希望知道的人能分享一下~)
1>2.1以前没有此属性,这个方法可以把一个action映射多个路径
2>使用方法
@Action(value="addUser",results={
??? ? @Result(name="success",location="/addSuc.jsp")
??? })
?? 例子是这样的
?
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import com.opensymphony.xwork2.ActionSupport;
@Namespace("/user")//这里测试了一下命名空间,和以前一样
public class UserAction extends ActionSupport {
?? ?@Action(value = "addUser", results = { @Result(name = "success",
location = "/addSuc.jsp",
type = "org.apache.struts2.dispatcher.ServletRedirectResult.class") }//这里测试了一下Redirect的客户端跳转方式
)
?? ?public String add() throws Exception {
?? ??? ?System.out.println("add方法被调用");
?? ??? ?return SUCCESS;
?? ?}
?? ?@Action(value = "delUser", results = { @Result(name = "success", location = "/delSuc.jsp") })
?? ?public String del() throws Exception {
?? ??? ?System.out.println("del方法被调用");
?? ??? ?return SUCCESS;
?? ?}
?? ?@Action(value = "modifyUser", results = { @Result(name = "success", location = "/modifySuc.jsp") })
?? ?public String modify() throws Exception {
?? ??? ?System.out.println("modify方法被调用");
?? ??? ?return SUCCESS;
?? ?}
?? ?@Action(value = "queryUser", results = { @Result(name = "success", location = "/querySuc.jsp") })
?? ?public String query() throws Exception {
?? ??? ?System.out.println("query方法被调用");
?? ??? ?return SUCCESS;
?? ?}
}
jsp调用
?
? <a href="user/addUser.action">添加</a>
??? <a href="uesr/delUser.action">删除</a>
??? <a href="user/modifyUser.action">修改</a>
??? <a href="user/queryUser.action">查询</a>
?
?
就这么多了~有不对的地方请指正~
?