Struts2の予備の理解

Struts2のデータビューとの相互作用のモデルを確立するための制御装置(コントローラ)と本質的にサーブレット、MVCデザインパターン、Struts2のに対応するMVCデザインパターンに基づいて、Webアプリケーションフレームワークです。

、Struts2の建築環境

1. Strutsは、プロジェクトのpom.xmlの達人に依存紹介しました

<依存性> 
2 <のgroupId> org.apache.struts </ groupIdを> 
3 <たartifactId> Struts2のコア</たartifactId> 
4 <バージョン> 2.5.13 </バージョン> 
5 </依存>

2. [インポート必要なStruts設定ファイル

ストラット-base.xml

<?xmlのバージョン= "1.0"エンコード= "UTF-8"?> 
<!DOCTYPEがPUBLIC Strutsの
     " - // Apache Software Foundationの// DTD Strutsの設定は2.5 // EN" 
    「http://struts.apache.org/ DTD / Strutsの-2.5.dtd "> 
<Strutsの> 
    <! -符号化フォーマットを設定- > 
    <名前=定数"。struts.i18n.encoding "値=" UTF-8「/> 
    <! -動的なメソッド呼び出しを有効にします- > 
    <定数名= "struts.devMode"値= "trueに" /> 
    <! -プロジェクトを再起動しなくても、すぐに効果を取ることができ、コードを変更する- > 
    =「struts.configuration.xml <定数名。 "/> trueに"値を="リロード
    />」trueに<名前=定数" struts.i18n.reload "値=" 
    <!-動的なメソッド呼び出しを有効にする- > 
    <名前=定数"struts.enable.DynamicMethodInvocation"値を= "trueに" />パッケージ
 
    <! - struts2.5後、動的メソッド呼び出しを有効にするには、この設定を追加します- >
    <名前=「ベース」が拡張 =「ストラット、デフォルトの」抽象 =「真の」> 
        <グローバル・許可・メソッド>正規表現:。* </グローバル・許可・メソッド> 
    </ パッケージ > 
</ストラット>

ストラットsy.xml

<?xmlのバージョン= "1.0"エンコード= "UTF-8"?> 
<!DOCTYPEはPUBLIC支柱
     " - // Apache Software Foundationの// DTD Strutsの設定2.5 // EN" 
    "http://struts.apache.org/dtds/struts-2.5.dtd"> 
<ストラット> 
    <! - /ユーザー/ bookAction methodNameの=?リスト 
         / SY / bookAction methodNameの=?リスト
     - > 
    < パッケージ名= "SY" 拡張 = "ベース"名前空間= "/ SY"> 
        <アクション名= "/ demo_ *" クラス = "com.liuwenwu .web.HelloAction」メソッド= "{1}"> 
            <結果名= "RS"> / rs.jsp </結果>

struts.xml

<?xmlのバージョン= "1.0"エンコード= "UTF-8"?> 
<!DOCTYPEはPUBLIC支柱
     " - // Apache Software Foundationの// DTD Strutsの設定2.5 // EN" 
    "http://struts.apache.org/dtds/struts-2.5.dtd"> 
<ストラット> 
    <! -ストラット默认を的配置文件- > 
    <ファイルが含ま= "-default.xmlの支柱"> </ include>の
    <! -ストラット基础配置文件- > 
    <=>> </を含める"-ストラットbase.xml"ファイルを含める
    
    <含めますファイル= "ストラット-sy.xml"> </ include>の
</ストラット>

3.フィルタコア配置のweb.xml

<web-appのxmlns = "http://xmlns.jcp.org/xml/ns/javaee" 
         のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" 
         のxsi:schemaLocationの = "HTTP ://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd」
         バージョン = "3.1"> 
  <表示名>原型作成されたWebアプリケーション</表示名> 
      <フィルター> 
          <フィルター名>支柱</フィルタ名> 
          <フィルター- クラス > org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </フィルター- クラス > 
      </フィルタ> 
      <フィルタ-mapping> 
          <フィルタ名>ストラット</フィルタ名> 
          の<url-pattern> *。アクション</のurl-pattern>
      </のfilter-mapping> 
</ web-app>の

第二に、動的なメソッド呼び出し

行動規範

   公共の文字列(){追加
        のSystem.out.printlnは( "调用方法を追加します" )。
        リターン「RS」
        
    } 
    
    パブリック文字列デル(){ 
        System.out.printlnは( "调用デル方法" )。
        リターン「RS」
        
    }

JSページのコードのテストが成功した場合

<a href="${pageContext.request.contextPath }/sy/demo_add.action">新增</a>の

<a href="${pageContext.request.contextPath }/sy/demo_del.action">删除< / A>

コンソールは、対応する出力は成功しました

三、背景にパラメータを渡すためにフロントにストラット

三つの方法:

ModelDrivern 1.implements
      2.クラスのインスタンスは、NAME属性
      3.SETをGET /

カルは、第1のエンティティクラスを作成します

パッケージcom.liuwenwu.entity。

パブリック クラスカル{ 
    
    プライベート文字列のNUM1。
    プライベート文字列からnum2;
    パブリック文字列getNum1(){
         戻りNUM1。
    } 
    公共 ボイドsetNum1(文字列NUM1){
         この .nu​​m1 = NUM1。
    } 
    パブリック文字列getNum2(){
         戻りNUM2。
    } 
    公共 ボイドsetNum2(文字列NUM2){
         この .nu​​m2 = NUM2。
    } 
    @Override 
    パブリック文字列のtoString(){
        リターン "CAL [NUM1 =" + NUM1 + "NUM2 =" + NUM2 + "]" 
    } 
    

}

1. modelDrivernを達成するために

パブリック クラス helloActionとが実装 ModelDriven <カル> 、ServletRequestAware {
         プライベートカルCAL1 = 新しい校正を()。    

    @Override 
    公共カルgetModel(){
         戻りCAL1。
    } 

        / ** 
     * modelDrivern接收参数值実装
     * @return 
     * / 
    パブリック文字列accept1(){ 
        System.out.printlnは( "CAL1:" + CAL1)。

        リターン「RS」
    } 

}

JSPページのコード

<a href="${pageContext.request.contextPath }/sy/demo_accept1.action?num1=20&&num2=5"> accept1する</a>

クラスの属性名の2インスタンス

    プライベートカルCAL2; 

    パブリック(){カルgetCal2の
         リターン; CAL2 
    } 

    公共 ボイドsetCal2(カルCAL2){
         この .cal2 = CAL2; 
    } 

    / ** 
     *クラスインスタンス属性名は、パラメータ値を受信
     * @return 
     * / 
    パブリック(文字列accept2を){ 
        のSystem.out.println( "CAL2:" + CAL2);
         リターン "RS" ; 
        
    }

 JSPページのコード

<a href="${pageContext.request.contextPath }/sy/demo_accept2.action?cal2.num1=20&&cal2.num2=5"> accept2する</a>

3.SET / GET

 プライベート文字列のセックス。

    公共の文字列getSex(){
         返すセックスを。
    } 

    公共 ボイドsetSex(文字列性別){
         この .sex = セックス。
    } 

    / ** 
     *セット/ GET接收参数值
     * @return 
     * / 
    パブリック文字列accept3(){ 
        System.out.printlnは(性別)。
        リターン「RS」
    }

JSPページのコード

<a href="${pageContext.request.contextPath }/sy/demo_accept3.action?sex=nv"> accept3する</a>

第四に、価値によってフォアグラウンドの背景 

  プロパティ定義を受信することができますを取得/設定
  req.setを.....

  1.注入法(カップリング):インターフェイス実装ServletRequestAware

パブリック クラス helloActionとは、実装 ModelDriven <カル> 、ServletRequestAware {
     // 注入耦合
    プライベートのHttpServletRequest reqをします。

    / ** 
     * modelDrivern接收参数值実装
     * @return 
     * / 
    パブリック文字列accept1(){ 
        System.out.printlnは( "CAL1:" + CAL1)。
        // 注入耦合 
        req.setAttribute( "CAL1" 、CAL1)。
        リターン「RS」
    } 

    @Override 
    公共 ボイドsetServletRequest(HttpServletRequestのREQ){
         この .reqに=REQ; 
        
    } 
}

2.非注入(カップリング)

  / ** 
     * modelDrivern接收参数值実装
     * @return 
     * / 
    パブリック文字列accept1(){ 
        System.out.printlnは( "CAL1:" + CAL1)。
        // 非注入耦合 
        HttpServletRequestのリクエスト= ServletActionContext.getRequest()。
        request.setAttribute( "CAL1" 、CAL1)。
        リターン「RS」
    }

 

おすすめ

転載: www.cnblogs.com/xiatian3452/p/11241743.html