Struts2の基本的な説明

ストラット2部分:
struts2の基本プロセス:
Struts2フレームワークは、3つの部分で構成され、コアコントローラーFilterDispatcher、ビジネスコントローラーとビジネスユーザーがビジネスロジックコンポーネントを実現し、
struts2フレームワークが* .action要求を取得した場合、* .action要求の先頭部分は、呼び出すビジネスロジックコンポーネントを決定し、
Struts2は、ユーザ実装のビジネスコントローラではなく、ユーザ要求のアクションインスタンスを処理するために使用されますが、ユーザが実装したビジネスコントローラがサーブレットAPIと結合されていないため、一連のインターセプタは、要求パラメータHttpServletRequest要求を担当し、アクションに渡され、アクションのexecuteメソッドにコールバックされ、ユーザーの要求を処理します。もちろん、上記のプロセスは典型的なAOP(アスペクト指向プログラミング処理方法:
-------------------------------------------------- --------------------------
要求に転送されました - >システムアクションプロキシ - >インターセプタ1 - >インターセプタn - >アクションクラス
-------------------------------------------------- --------------------------
ユーザ実装のActionクラスは、Struts 2 Actionプロキシのプロキシターゲットだけです。ユーザが実装したビジネスコントローラには、ユーザリクエストの処理が含まれています。訪問HttpServletRequest
オブジェクト、インターセプタは、HttpServletRequest内の要求データを解析し、解析してビジネスロジックコンポーネントに渡します。アクションインスタンス

この小さなプログラムは、struts2、hibernate3.2、spring2.5
struts2 tiles2フレームワーク、validate、国際化、stiles2フレームワークのstruts2タグで使用されるいくつかの困難は、実際には、独自のタイル2は困難ではなく、struts1タイル1フレームワークのほんの少しの違いです。
しかし、主なリソースはtiles2を見つけるのが難しく、プロセスの実現は完全な例(オンライン)ではないので、struts1とstruts2のtiles.tldファイルの参照に基づいていました。tiles2 jarパッケージが追加されました。たとえすべてのjar2とtiles2、
また、これらのパッケージ(org.apache.tiles.taglib、org.apache.tiles.taglib.definition)のいくつかを見つけることができません
"tiles-core"タグライブラリには、動的に再利用可能なコンポーネントを作成するのに便利なタグが含まれています。
「Tile Core」タグライブラリには、動的で再利用可能なコンポーネントを作成するのに役立つタグが含まれています。
だから私がエラーを報告するたびに、私はこれらのクラスを見つけるためにstruts2の完全なパッケージをダウンロードしたので、私はタイル2にパッケージを追加したいと思います。
tiles-api-2.0.4.jar tiles-core-2.0.4.jar tiles-jsp-2.0.4.jar struts2-tiles-plugin-2.0.11.jar
特に、tiles-jsp-2.0.4.jarパッケージのtiles-jsp.tldファイルは、このフレームワークを参照してtiles2を作成します
-------------------------------------------------- -----------------------------------------
歪んだフィルター:
最初のページはUTF-8に設定され、web.xmlに追加されます
<filter>
<filter-name> struts-cleanup </ filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</ filter-class>
</ filter>
-------------------------------------------------- ---------------------------------
Struts2その言語で:
デフォルトは、オブジェクトプロパティの操作を容易にするオープンソースの式言語であるOGNLです
1. xxx.doSomeSpecial()などのオブジェクトメソッド呼び出しをサポートします。
2.静的メソッド呼び出しと値アクセスをサポートするため、式の形式は@ [クラスフルネーム(パッケージパスを含む)] @ [メソッド名|値名]です。たとえば、@ java.lang.String @ format( 'foo %s '、' bar ')または@ tutorial.MyConstant @ APP_NAME;
3.Support代入と式の連結、たとえばprice = 100、discount = 0.8、calculatePrice()、この式は80を返します。
4. OGNLコンテキストとActionContextにアクセスする。
操作コレクションオブジェクト。

"#"の主な用途:
1. OGNLコンテキストとActionコンテキスト(ActionContext.getContext()に相当)にアクセスする;次の表には、ActionContextにいくつかの有益なプロパティがあります。
名前の例
現在のHTTPリクエストパラメータを含むparameters#parameters.id [0]は、request.getParameter( "id")と等価です。
request現在のHttpServletRequestの属性を含むMap#request.userNameは、request.getAttribute( "userName")と等価です。
session現在のHttpSessionの属性を含むMap#session.userNameは、session.getAttribute( "userName")と等価です。
application Map#application.userNameは、現在適用されているServletContextの属性を含み、application.getAttribute( "userName")と同等です。
attrは、リクエスト>セッション>アプリケーションの順にその属性にアクセスするために使用されます。#attr.userNameは、上記の3つのスコープでuserName属性が順番に読み取られるまで
2.本などのセットをフィルタリングして投影するために使用します。{?#This.price <100};
3.#{'foo1': 'bar1'、 'foo2': 'bar2'}のようなマップ。

"%"の主な用途:
フラグの属性が文字列型の場合、OGNL式の値が計算されます

"$"の主な目的:
1.国際化されたリソースファイルでOGNL式を参照するために使用されます。
struts2構成ファイルで、参照OGNL式

struts2構成ファイル
struts2構成ファイルを2つの部分に分けます。
アクションstruts.xml構成ファイル。
Struts2設定struts2グローバルプロパティstruts.propertiesファイル。
Struts.xmlファイルは、一連のstruts2アクション、アクションの定義、アクション・クラスの実装の指定、アクション処理結果の定義、およびビュー間のリソースのマッピングを定義します。
---------------単純なstruts2 struts.xmlファイル-------------------------- -----------------
<struts>
<! - Struts 2アクションはパッケージで設定する必要があります - >
<package name = "default" extends = "struts-default">
<! - ログオンアクションを定義し、クラスlee.Logon - >を実装する
<action name = "Logon" class = "lee.Logon">
<! - 設定アクション/pages/Logon.jspページへの入力を戻す - >
<result name = "input"> / pages / Logon.jsp </ result>
<! - キャンセルを返してようこそアクションにリダイレクトするアクションを設定する - >
<result name = "cancel" type = "redirect-action">ようこそ</ result>
<! - Actionが成功を返したときにMainMenuにリダイレクトするようにアクションを設定する
<result type = "redirect-action"> MainMenu </ result>
<! - ChangePasswordに返されるアクションを構成します。返されたアクションは、期限切れです - >
<result name = "expired" type = "chain"> ChangePassword </ result>
</ action> <! - ログオフのアクションを定義し、クラスlee.Logoffを実装します - >
<action name = "Logoff" class = "lee.Logoff">
<! - Actionが成功を返したときにMainMenuにリダイレクトするようにアクションを設定する
<result type = "redirect-action">ようこそ</ result>
</ action>
</ package>
</ struts>
-------------------------------------------------- -------------------------------------
struts.xmlファイルの上には、2つのアクションの定義、アクションの定義だけでなく、アクションクラスの実装とアクションの定義が定義されています
処理の結果、複数の結果を指定する場合、result要素は、executeメソッドの戻り値とビュー・リソースの間のマッピングを指定します

struts.propertiesグローバル・プロパティ・ファイルのプロパティ
#指定されたStruts 2の開発中
struts.devMode = false
// Struts 2構成ファイルが変更されたときにWebフレームワークがStruts 2構成ファイルを再ロードするかどうかを指定します
struts.configuration.xml.reload = true
前述のように、struts.propertiesファイルの形式は、一連のキーと値のペアであり、struts2アプリケーションのグローバルプロパティを指定します

Struts2コアフィルタ、以下はコアstruts2の増加です。フィルタ設定web.xml設定ファイルコード:
<?xml version = "1.0" encoding = "GBK"?>
<! - web-appは、Webアプリケーションの構成ファイルのルート要素で、Webアプリケーションのスキーマ情報を指定します。 - >
<web-app version = "2.4" xmlns = " http://java.sun.com/xml/ns/j2ee"xmlns:xsi =
" http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation =
" http://java.sun.com/xml/ns/j2ee http://java.sun.com / xml / ns / j2ee / web-app_2_4.xsd"
<! - Struts 2のフィルタの定義 - > FilterDispatcher
<filter>
<! - コアの名前を定義するフィルター - >
<filter-name> struts2 </ filter-name>
<! - コアフィルタ実装クラスを定義する - >
<filter-class> org.apache.Struts2.dispatcher.FilterDispatcher
</ filter-class>
</ filter>
<! - Struts 2の初期化とすべてのWebリクエストの処理に使用されるFilterDispatcher - >
<filter-mapping>
<filter-name> Struts2 </ filter-name>
<url-pattern> / * </ url-pattern>
</ filter-mapping>
</ web-app>

Struts2 struts.properties構成ファイルこのファイルは標準プロパティファイルであり、ファイルには一連のkey_valueオブジェクトが含まれ、各キーはStruts2プロパティであり、
キーの値はStruts2プロパティ値です。
-------------------------------------------------- ---------------------------------------
struts.configurationこのプロパティーは、Struts 2構成ファイルをロードする構成ファイル・マネージャーを指定します
struts.locale:デフォルトWebアプリケーションのロケールを指定する
struts.i18n.encoding:Webアプリケーションのデフォルトエンコードセットを指定します。 この属性は、中国の要求パラメータの処理に非常に役立ちます。中国の要求パラメータ値を取得するには、この属性値をGBKまたはGB2312に設定する必要があります。
ヒントこのパラメータをGBKに設定すると、HttpServletRequestのsetCharacterEncodingメソッドを呼び出すのと等価です。
struts.objectFactory:指定されたStruts 2のデフォルトのObjectFactory Beanです。このプロパティのデフォルト値はspringです。
struts.objectFactory.spring.autoWire:自動的にアセンブルされたBeanのnameプロパティに従って、デフォルトのプロパティ名のSpring Framework自動アセンブリモードを指定します。
struts.objectFactory.spring.useClassCache:この属性は、Springフレームワークの統合時にBeanインスタンスをキャッシュするかどうかを指定します。この属性では、trueとfalseの2つの属性値を使用できます。 一般に、このプロパティ値を変更することはお勧めしません。
struts.objectTypeDeterminer:このプロパティは、Struts 2型検出メカニズムを指定します。通常、tigerとnotigerの2つのプロパティ値をサポートします。
struts.multipart.parser:この属性は、multipart / form-dataのMIMEタイプ(ファイルアップロード)要求を処理するフレームワークを指定します。この属性は、cos、pell、jakartaなどの属性値をサポートしています。
pellアップロードとcommon-fileuploadファイルアップロードフレームワーク。 このプロパティのデフォルト値はjakartaです。
注記cosまたはpellファイルアップロードメソッドを使用する必要がある場合は、対応するJARファイルをWebアプリケーションにコピーする必要があります。 たとえば、cosアップロードメソッドを使用する場合は、cosフレームワークのJARファイルをダウンロードし、そのファイルをWEB-INF / libパスに配置する必要があります。
struts.multipart.saveDir:この属性は、アップロードされたファイルの一時保存パスを指定します。この属性のデフォルト値はjavax.servlet.context.tempdirです。
struts.multipart.maxSize:このプロパティは、Struts 2ファイルのアップロードで要求コンテンツ全体に許可される最大バイト数を指定します。
struts.custom.properties:このプロパティーは、ユーザー定義のプロパティー・ファイルをロードするStruts 2アプリケーションを指定します。カスタム・プロパティー・ファイルで指定されたプロパティーは、struts.propertiesファイルで指定されたプロパティーをオーバーライドしません。
複数のカスタムプロパティファイルをロードする必要がある場合は、複数のカスタムプロパティファイルの名前がコンマ(、)で区切られます。
struts.mapper.class:指定されたActionマッパーにマップされた指定されたHTTPリクエスト。Struts 2はデフォルトマッパーorg.apache.struts2.dispatcher.mapper.DefaultActionMapperを提供します。
デフォルトのマッパーは、リクエストのプレフィックスに基づいてアクションのnameプロパティをマッピングします。
struts.action.extension:この属性は要求サフィックスStruts 2の処理を指定します。この属性のデフォルト値はactionです。つまり、* .actionとStruts 2処理で一致するすべての要求です。
ユーザーが複数の要求サフィックスを指定する必要がある場合、複数の接尾辞はコンマ(、)で区切られます。
struts.serve.static:このプロパティは、JARファイルを通じて静的コンテンツサービスを提供するかどうかを設定します。このプロパティは、trueおよびfalseプロパティ値のみをサポートします。
struts.serve.static.browserCache:このプロパティは、ブラウザが静的コンテンツをキャッシュするかどうかを設定します。 アプリケーションが開発中の場合、すべての要求に対してサーバーの最新の応答を取得し、このプロパティをfalseに設定する必要があります。
struts.enable.DynamicMethodInvocation:このプロパティは、Struts 2が動的メソッド呼び出しをサポートするかどうかを設定します。プロパティのデフォルト値はtrueです。 動的メソッド呼び出しをオフにする必要がある場合は、このプロパティをfalseに設定できます。
struts.enable.SlashesInActionNames:このプロパティが設定されているStruts 2スラッシュの名前の使用を許可するかどうかは、このプロパティのデフォルト値はfalseです。 開発者がアクション内のランプの名前の使用を許可したい場合、このプロパティをtrueに設定できます。
struts.tag.altSyntax:この属性は、通常はタグで式の構文が必要であるため、属性をtrueに設定し、この属性のデフォルトをtrueに設定する必要があるため、Struts 2タグで式構文を許可するかどうかを指定します。
struts.devMode:このプロパティは、開発モードを使用するかどうかをStruts 2アプリケーションに設定します。 このプロパティをtrueに設定すると、アプリケーションエラーが発生したときに、より多くのフレンドリなエラーメッセージを表示できます。 このプロパティは、trueとflaseの2つの値のみを受け取り、
このプロパティのデフォルト値はfalseです。 通常、アプリケーションは開発段階にあり、このプロパティはtrueに設定され、製品のリリース段階に入ると、プロパティはfalseに設定されます。
struts.i18n.reload:この属性は、HTTPリクエストが到着するたびにリソースファイルをリロードするかどうかを設定します。 このプロパティのデフォルト値はfalseです。 開発中にこのプロパティをtrueに設定すると、開発中、
ただし、この属性は、製品の開始段階ではfalseに設定する必要があります。
プロンプトの開発フェーズでは、このプロパティをtrueに設定し、開発者がリアルタイムの開発結果を参照できるように、各リクエストごとに国際化されたリソースファイルをリロードできるようになり、製品のリリース段階をfalseに設定し、
応答性を提供するために、すべての要求に対してリソースファイルを再ロードすると、アプリケーションのパフォーマンスが大幅に低下する可能性があります。
struts.ui.theme:このプロパティは、ビューラベルのデフォルトのビューテーマを指定します。このプロパティのデフォルト値はxhtmlです。
struts.ui.templateDir:この属性は、ビュートピックに必要なテンプレートファイルの位置を指定します。この属性のデフォルト値はtemplateです。つまり、テンプレートパスの下のテンプレートファイルがデフォルトで読み込まれます。
struts.ui.templateSuffix:この属性は、テンプレートファイルの接尾辞を指定します。この属性のデフォルト値はftlです。 このプロパティでは、FreeMarker、Velocity、およびJSPテンプレートにそれぞれ対応するftl、vm、またはjspを使用することもできます。
struts.configuration.xml.reload:この属性は、struts.xmlファイルが変更されたときに設定され、システムは自動的にファイルをリロードします。 このプロパティのデフォルト値はfalseです。
struts.velocity.configfile:このプロパティは、Velocityフレームワークが必要とするvelocity.propertiesファイルの場所を指定します。 このプロパティのデフォルト値はvelocity.propertiesです。
struts.velocity.contexts:このプロパティは、フレームワークに複数のContextがある場合はContextの位置Velocityフレームワークを指定し、複数のContextコンマ(、)は区切ります。
struts.velocity.toolboxlocation:このプロパティは、Velocityフレームワークのツールボックスの場所を指定します。
struts.url.http.port:このプロパティは、Webアプリケーションが配置されているリスニングポートを指定します。 この属性は通常はあまりユーザーではなく、Struts 2がURL(URLタグなど)を生成する必要がある場合にのみ、このプロパティはWebアプリケーションのデフォルトのポートを提供します。
struts.url.https.port:このプロパティーはstruts.url.http.portプロパティーに似ていますが、このプロパティーはWebサービス暗号化サービス・ポートを指定する点が異なります。
struts.url.includeParams:この属性は、Struts 2が要求パラメータを含むURLを生成するかどうかを指定します。 この属性はnone、getを受け付け、3つの属性値は含まれていないものに対応し、GET型要求パラメータのみを含み、すべての要求パラメータを含みます。
struts.custom.i18n.resources:このプロパティは、Struts 2アプリケーションが必要とする国際的なリソースファイルを指定します。複数の国際化リソースファイルがある場合、複数のリソースファイルのファイル名はカンマ(、)で区切ります。
struts.dispatcher.parameters回避策:一部のJava EEサーバーでは、HttpServlet Request呼び出しのgetParameterMap()メソッドをサポートしていません。今回は、この問題を解決するためにプロパティ値をtrueに設定できます。
このプロパティのデフォルト値はfalseです。 WebLogic、Orion、およびOC4Jサーバーの場合、通常このプロパティをtrueに設定する必要があります。
struts.freemarker.manager.classname:このプロパティは、Struts 2で使用されるFreeMarkerマネージャを指定します。 このプロパティのデフォルト値はorg.apache.struts2.views.freemarker.FreemarkerManagerです。
これは、Struts 2に組み込まれたFreeMarker Managerです。
struts.freemarker.wrapper.altMap:このプロパティはtrueとfalseの2つのプロパティ値のみをサポートします。デフォルト値はtrueです。 通常このプロパティ値を変更する必要はありません。
struts.xslt.nocache:この属性は、スタイルシートキャッシュを使用するXSLT結果を指定します。 このプロパティは通常、アプリケーションが開発段階にあるときにtrueに設定されます。アプリケーションが製品使用段階にあるときは、
このプロパティは通常falseに設定されます。
struts.configuration.files:この属性は、Struts 2フレームワークによってロードされるデフォルトのコンフィギュレーションファイルを指定します。複数のコンフィギュレーションファイルがデフォルトでロードされるように指定する必要がある場合、複数のコンフィギュレーションファイル名はカンマ(、)で区切ります。
このプロパティのデフォルト値はstruts-default.xml、struts-plugin.xml、struts.xmlです。このプロパティの値を参照すると、Struts 2フレームワークがデフォルトでstruts.xmlファイルをロードした理由を理解する必要があります。
Struts 2では、struts.xmlファイル内でStruts 2のプロパティを管理することができます。これは、struts.xmlファイルで定数要素を設定することで設定できます。
-------------------------------------------------- ---------------------------------------

Struts2での国際化まず、中国語などのプロパティファイルの命名規則とstruts1は(ファイル名_言語コード_国コード。プロパティ)です:
messageResouce_zh_CN.propertiesは、struts1と同じですが、エンコードにはnative2asciiが必要です。
struts2は、リソースファイルをロードすることによって、jspページに一時的にロードするリソースファイルをサポートしますが、リソースファイルをロードするためのグローバルプロパティもサポートしています。
WEB-INF / classesに保存されている場合、WEB-INF / classes / yaleの下に保存されているデフォルトのファイルです。その後、messageResourceは
yale.messageResource
次のように:
-------------------------------------------------- -------------------------------------
// Struts 2リソースファイルのbaseNameをmessageResourcestruts.custom.i18n.resources = messageResourceとして定義します。
-------------------------------------------------- ----------------------------------------
国際的な情報を出力する:
struts2国際情報を出力する方法は2つあります。
<s:text name = "messageKey" />(タグモード)および<s:property value = "%{getText(" messageKey ")}" />

データ検証はActionSupportから継承します
ActionSupportクラスは、Actionインタフェースを実装するユーティリティクラスです。 さらに、Validateインタフェースも実装されていますが、
データ検証を提供します。 ActionSupportクラスを継承することにより、Struts 2のAction開発を簡素化できます。
検証可能なインタフェースは、validate()メソッドを定義し、メソッドをオーバーライドします。検証フォームの入力フィールドのエラー、
エラーは、ActionSupportクラスのfieldErrorsフィールドに追加され、出力はOGNL式に渡されます。
次のようなvalidate()メソッドがアクションに追加されました。
-------------------------------------------------- --------------------------------
//入力検証のためにオーバーライドする必要があるvalidateメソッドを終了します
public void validate()
{
//ユーザー名が空の場合、またはユーザー名が空の文字列の場合
if(getUsername()== null || getUsername()。trim()。equals( ""))
{
//フォーム検証エラーを追加する
addFieldError( "username"、 "user.required");
}
//パスワードが空白の場合、またはパスワードが空の文字列の場合にフォーム検証エラーを追加する
if(getPassword()== null || getPassword()。trim()。equals( ""))
{
addFieldError( "password"、 "pass.required");
}
上記のアクションクラスは、システム実行メソッドを実行する前に実行されるvalidateメソッドをオーバーライドします。このメソッドが実行されると、アクションクラスのfieldErrorsにはすでにデータ検証エラーが含まれており、リクエストは入力論理ビューに転送されます。戻り値の設定を追加するためのstruts.xmlファイルの照合、
しかし、上記の問題は、ハードコーディングです。この場合、国際化への道がない場合、Struts2では、ActionSupportクラスが国際的な情報を提供し、getText(String key)メソッドを提供しますこのメソッドは、検証情報の国際化をサポートするために、リソースファイルから国際的な情報を取得するために使用され、
Action validateメソッドを再度変更し、validateメソッドコードを次のように書き換えます。
//メソッドを検証してデータ検証を実行する
public void validate()
{
//ユーザー名が空の場合、または空の文字列の場合
if(getUsername()== null || getUsername()。trim()。equals( ""))
{
//メッセージを国際化するgetTextメソッドを使用して検証エラーメッセージを追加する
addFieldError( "username"、getText( "user.required"));
}
if(getPassword()== null || getPassword()。trim()。equals( ""))
{
addFieldError( "password"、getText( "pass.required"));
}
}

カテゴリ:Default 時間:2018-05-15 人気:0

関連記事

Copyright (C) socapnw.com, All Rights Reserved.

Socapnw All Rights Reserved.

processed in 0.197 (s). 11 q(s)