【web开发学习笔记】Structs2 Action学习笔记(一个)

1、org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter准备和运行
2、

  
      struts2
      /*
  
    url-pattern约定熟成仅仅写/*,不是必需写*.action
3、

	
	     
	         	
	         	/Hello.jsp
	         
	     
    	
     namespace="/"和訪问的路径意义相应; 
    /hello.action
    訪问了action。给了我们result的结果。
    默认的action能够省略。
4、关联structs源码和java docs
    jar文件右键代->properies->Java Source Attachment
    设置源代码
        D:/Program Files/struts-2.1.6/src/core/src/main/java
    javadoc 文档
        file:/D:/Program Files/struts-2.1.6/docs/struts2-core/apidocs/
    设置xml提示:
        a)window – preferences – 搜索 catalog – add 

        b)选择key type为URI

        c)key: http://struts.apache.org/dtds/struts-2.0.dtd

        d)location: 相应的dtd文件。位于struts-core包中,解压开。指定相应位置,如D:/Program Files/struts-2.1.6 \lib\struts2-core-2.1.6\struts-2.0.dtd
5、structs执行机制
    client -> url -> Http请求 -> Tomacat -> 查找相应的Webapplication -> web.xml -> filter doFilter方法->
	  
		  struts2
		  org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
	  
	  
		  struts2
		  /*
	  
    ->參考struct.xml -> 查找相应的namespace -> 查找相应的action -> 查找相应的result -> 反馈result -> 请求Forwad给目标文件 
	  
		
			
				/index.jsp
			
		
	 
6、namespace决定了action的訪问路径,默觉得""。能够接收全部路径的action
    namespace能够写为/,或者/xxx,或者/xxx/yyy,
    相应的action訪问路径为/index.action,/xxx/index.action。或者/xxx/yyy/index.action.
    namespace最好也用模块来进行命名 

   
    
        
            /Namespace.jsp
        
    
    
     
        
            /Namespace.jsp
        
    
    struct.xml分析
        package作用:避免action的重名和冲突问题;
        namespace="/front",必须以斜杠开头,namespace最好也用模块来进行命名;
        不写namespace,等效于namespace = "",意味着仅仅要找到action,全都交给
        namespace处理。
                流程:先找相应路径下的action进行匹配。假设没有的话找namespace为空的action。
                假设还没有找到action则会报错;
7、 详细视图的返回能够由用户自定义的Action来决定;
    详细的手段是依据返回的字符串找到相应的配置项,来决定视图的内容;

	
	
		
			
				/ActionIntroduction.jsp
			
		
	 
    详细Action的实现能够是一个普通的java类。里面有public String execute方法就可以或者实现
    Action接口;

    package com.bjsxt.struts2.front.action;
    import com.opensymphony.xwork2.Action;
    public class IndexAction1 implements Action {
	@Override
	public String execute() {
		return "success";
	}
    }
      配置分析:
            
            struct.xml -> 找到相应的class -> 实例化对象 -> 运行相应的execute()方法
    运行过程:
        读到xml -> action是class -> 找到class对象(每次訪问必须new一个对象) -> 
        当不配置class的时候,默认的class是ActionSupport。

        ActionSupport源代码

   public String execute() throws Exception {
	        return SUCCESS;}
 
    

    最经常使用的是从ActionSupport继承。优点在于能够直接使用Struts2封装好的方法

    package com.struts2.front.action;
    import com.opensymphony.xwork2.ActionSupport;
    public class IndexAction2 extends ActionSupport {		
	@Override
	public String execute() {
		return "success";}
    }

        原因:ActionSupport内部已经为我们封装了很多能够直接调用的方法,在子类中能够直接使用。

以上是根据麻石兵云集了来自老师的教程。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的:(【web开发学习笔记】Structs2 Action学习笔记(一个))