Struts2基于注解的Action配置

1· 既然我们开发的是web项目所以web.xml文件时必不可少的

在web.xml 中配置拦截用户请求的 filter拦截用户的所有的请求并且初始化 struts.xml文件


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


        struts2
        /*


2·使用注解的方式配置struts就需要引入一个jar包

虽然说是零配置但是struts.xml还是少不了的配置如下:

   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    
    
    
    
    
    


3·action类的注解:

@ParentPackage("basePackage")  //指定父包
@Namespace("/user")   //指定命名空间

//   @Results( { @Result(name = "success", location = "/main.jsp"), @Result(name = "error", location = "/error.jsp") })   全局的实现跳转的页面

@Action("userAction")  //指定action的访问url                                       
public class UserAction extends BaseAction implements ModelDriven {

    

     private User user = new User();

    @Override
    public User getModel() {
        return user;
    }

    private UserServiceI service;
    
    public UserServiceI getService() {
        return service;
    }
    @Autowired    // spring注解
    public void setService(UserServiceI service) {
        this.service = service;
    }
             // @Action(value = "reg", results = { @Result(name = "success", location = "/index.jsp") })  另一种方式localhost:8080/struts_demo/user/userAction/reg
    public void reg(){
        JSON j = new JSON();
        try {
            service.addUser(user);
            j.setSuccess(true);
            j.setMessage("注册成功");
        } catch (Exception e) {
            j.setMessage("注册失败");
            e.printStackTrace();
        }
        super.writeJson(j);
    }


}

上面的1.2使用的是实现ModalDriven(模型驱动的方式)方便接收页面传递过来的值

以前我们是把页面上所有的传值写一个类级变量然后定义其getter / setter方法

这样的话如果变量过多会很麻烦,所以我们实现模型驱动实现其getModal方法即可,在modal层建立实例写入getter/setter方法

总结:

Namespace:指定命名空间。

ParentPackage:指定父包。

Result:提供了Action结果的映射。(一个结果的映射)

Results:“Result”注解列表

ResultPath:指定结果页面的基路径。

Action:指定Action的访问URL。

Actions:“Action”注解列表。

ExceptionMapping:指定异常映射。(映射一个声明异常)

ExceptionMappings:一级声明异常的数组。

InterceptorRef:拦截器引用。

InterceptorRefs:拦截器引用组。


4.  调用:localhost:8080/struts_demo/user/userAction!reg .action  即可

你可能感兴趣的:(java)