00-struts入门

  1. 基本配置
  2. 关于方法调用 action
  3. 转发与重定向 result

基本配置

  1. 新建一个Web动态项目struts
  2. 导入需要的jar包,复制到WEB-INF/lib下
    链接:https://pan.baidu.com/s/1p9YbyjWINLnQHD0Qw4yopg 密码:u8wh
  3. 在web.xml文件中
    • 配置一个Filter,所有的请求都给过滤给org.apache.struts2.dispatcher.ng.filter下的StrutsPrepareAndExecuteFilter



  
    
    mystruts
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  
  
  
    mystruts
    
    /*
  
  


  1. 创建一个处理类
    • 创建一个包,action,创建一个类TestAction,写一个方法
    • 一会配置完成后执行的就是这个方法
package action;

public class TestAction {
    public String test() {
        System.out.println("public: test....");
        return "mystruts";
    }
}


  1. 配置struts.xml
    • 在src目录下创建一个struts.xml文件,下面是最简单的配置信息
    • 效果是当访问test路径的时候服务器跳转到NewFile.jsp


    



    
    
    
        
        
            /NewFile.jsp 
        
    
    


   
    
  1. 在NewFile.jsp就写一句,然后启动,访问http://localhost:8080/struts/test
    此时上面那个方法就会执行了,也访问了这个视图
  1. 整体流程

    • 所有的访问都会被web.xml中的配置的Struts的Filter所拦截
    • 拦截之后就会进入到struts的工作流程
    • 访问的地址是/test,根据struts按照struts.xml中的配置,服务器跳转到NewFile.jsp
    • 显示NewFile.jsp页面
  2. 注意事项

    • struts2的配置文件必须是struts.xml
    • 这个配置文件必须在src下面
  3. struts.xml中搜索
    多级搜索:

    • struts.xml 针对请求路径映射规则为:先根据命名空间搜索package标签,当找到包之后根据action名搜索action标签
      包搜素:
    • 若根据原命名空间找不到package标签,struts2自动后退一层目录,然后将新目录作为命名空间,寻找package标签,以此类推,找到package将不再寻找,否则报错
      action搜素:
    • 根据action名若在当前包中找不到相关的action标签,自动到默认包中(namespace为空白就是/根目录)中找到相关的action标签,若没有就报错

先执行包多级搜素在进行action多级搜索,它们是独立的

关于方法调用 action

  1. 占位符的方式
    • 首先是在action中定义好方法
package action;

public class TestAction {
    public String test() {
        System.out.println("public: test....");
        return "mystruts";
    }
    public String select() {
        System.out.println("public: select....");
        return "mystruts";
    }
    public String insert() {
        System.out.println("public: insert....");
        return "mystruts";
    }
    public String update() {
        System.out.println("public: update....");
        return "mystruts";
    }
    public String delete() {
        System.out.println("public: delete....");
        return "mystruts";
    }
}

  • 然后在struts.xml中进行配置,其中action的name值设置有占位符,为*号,然后在method中使用{1}的方式来获取,这样更加方便


    

    
    
        
            /NewFile.jsp
        
        
    
   

  • 在NewFile.jsp页面中就可以这样写了,其中当你点击增加的时候,就会执行对应的insert方法



增加
更改
删除
查询

  1. 动态调用
    • action中定义的方法不变
    • 在struts.xml中进行配置,其中action中不用指定方法
    • 但是要设置这个属性为true


    

    
    
    
    
            
        
            /NewFile.jsp
        
    
   

  • 在NewFile.jsp中使用 action路径 ! 方法名这种方法来调用,其中当你点击增加的时候,就会执行对应的insert方法



增加
更改
删除
查询

转发与重定向 result

result标签 : 定义指定视图对应的响应自愿[视图名与视图文件的映射]

  1. name属性:设置当前result标签代表的视图名,默认为sucess

  2. type属性:设置响应视图文件的方式[响应方式],默认为dispatcher转发

    • dispatcher:可以转发到指定的页面
    • chain:可以转发到同包或异包中的action
    • redirect:可以重定向到指定页面或同包\异包action
    • redirectAction:可以重定向到同包或异包的action
  3. 转发的时候指定到action,第一个标签是找到根目录,然后再找到action名为select的

 
            
                /
                select
             
            /error.jsp 
            
        

你可能感兴趣的:(00-struts入门)