struts 2の概要


1、struts 2の運行メカニズム:clientはtomcat参考プロファイルwebに渡す.xml、対応するstruts 2 filterを見つけて、struts 2 filterはプロファイルstrutsを参照します.xmlは、まずnamespace、action、resultを見て、JSPファイルを見つけてクライアントに返します.メリット:リクエストとビューを分離し、より柔軟に
//struts.xml  
<constant name="struts.devMode" value="true" />  <!-- devMode     ,      jsp、struts.xml  ,       action(Java  )  -->
	 <!--    package       、namespace    action     ,   ""( ),
                                  /  ,extends         -->
    <package name="default" namespace="/" extends="struts-default">
	    <!--      class ,    class  execute  ,    success,        class,class="com.struts2.action.IndexAction1"  com.struts2.action   IndexAction1 ,       method,method="add",   IndexAction1   add  -->
        <action name="hello">
         <!-- result      success,       -->
            <result name = "success">/Hello.jsp </result>
        </action>
    </package>

2、ネーミングスペース(namespace):namespaceはactionのアクセスパスを決定し、デフォルトは「」(空)であり、すべてのパスのactionを受信することができる.namespaceは/,あるいは/xxx,あるいは/xxx/yyy/,対応するアクセスパスは/indexである.action,/xxx/index.アクション、または/xxx/yyy/index.action.namespaceはモジュールで命名することも望ましい.
3、action:具体的なビューの戻りはユーザーが自分で定義したActionで決定することができ、具体的な手段は戻り文字列に基づいて対応する配置項目を見つけ、ビュー(結果JSPページ)の内容を決定することであり、具体的なActionの実現は普通のjavaクラスであり、public String executeメソッドがあればよい.あるいはActionインタフェースを実現するが、最もよく使われるのはActionSupportから継承され、Struts 2を直接使用してパッケージ化できるという利点がある.
public class IndexAction1 {
	public String execute() { //  execute  
		return "success";
	}
}
import com.opensymphony.xwork2.Action;

public class IndexAction2 implements Action {
	public String execute() { //  Action  
		return "success";
	}
}
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class IndexAction3 extends ActionSupport {
	
	@Override
	public String execute() { // ActionSupport  ,      Struts2      
		return "success";
	}
}

                
 //JSP  
4、path    :struts2         action      jsp     ,            。<a href="index.jsp">index.jsp</a>     redirect    , redirect      。        ,        。( jsp  request.getContextRoot     webapp   )    myeclipse    ,  basePath
//struts.xml  
<package name="path" extends="struts-default" namespace="/path">
       <action name="path" class="com.bjsxt.struts2.path.action.PathAction">
            <result name="path">/path.jsp</result>
        </action>
    </package>
//action
package com.bjsxt.struts2.path.action;

public class PathAction {
	public String execute() {
		return "path";
	}
}