ホームページ Java &#&チュートリアル Jakarta Struts 1.1 (2) の学習

Jakarta Struts 1.1 (2) の学習

Dec 17, 2016 am 10:46 AM


DynaActionForm

DynaActionFormは、基本的にActionFormを書く必要をなくす便利な仕組みを提供します。 DynaActionForm では動的なフォーム プロパティが可能です。これは、struts-config.xml ファイルでプロパティを定義し、フォーム タイプを org.apache.struts.action.DynaActionForm に設定できることを意味します。何も書く必要はありません。 DynaActionForm は、Apache パブリック プロジェクトの DynaBean を使用して、これらの操作を完了します。この動的な動作は、リフレクションとハッシュマップを通じて提供されます。

DynaActionFormはstruts-config内のタグを使用して定義されています。属性名はアクション内のフォーム Bean のインデックスに使用され、タイプはインスタンス化されたクラスを指定するために使用されます。 DynaActionForm クラスを使用する場合、動的プロパティは自動的にデフォルトで true に設定されます。 DynaActionForm の場合、フォームのすべてのプロパティは要素を使用して指定されます。要素内の名前は属性名を指します。 Type は、Bean 属性の Java 実装クラスのクラス名を参照します。この属性がインデックス型の場合は、型の後に「[ ]」を追加します。上の表では、最後の属性ジャンルの定義に注目してください。初期値 (またはデフォルト値) は「ダンス」に設定されています。この値は、DynaActionForm のreset() メソッドが呼び出されたときにデフォルト値としても設定され、フォームにデフォルト値を設定するメカニズムを許可します。初期属性に値が指定されていない場合、すべてのプリミティブ型の初期値は 0 に設定され、オブジェクトの場合、初期値は null (空) になります。

DynaActionForm を使用する主な利点の 1 つは、非常に少ないコードを記述するだけで済むことです。他のフォームと同様に、前述のコード例は、フォームを使用するために必要なすべてのコードです。知っておくべきことの 1 つは検証です。 DynaActionFormを利用する場合は、ActionFormとは少し異なり、どこかで検証処理が行われることが前提となります。独自のアクションに検証を実装することもできますが、これはより良いアプローチです。

検証には、DynaValidatorForm または DynaValidatorActionForm を使用できます。どちらのクラスも org.apache.struts.validator パッケージに含まれています。 DynaActionForm を拡張することで、XML ファイルの基本値フィールドに基づいて検証を行うことができます。検証はバリデーターに入力されたキーに基づいて行われます。キーは、struts-config.xml ファイルの name 属性です。これは、validation.xml ファイルの form 要素の name 属性と一致する必要があります。

複数のアプリケーションのサポート
Struts 1.1では、複数のサブアプリケーションを定義してサポートできます。これは、アプリケーションをより保守しやすいサブアプリケーションに配置できることを意味します。単一の struts-config.xml ファイルの外部でソース管理を検出する必要はなくなりました。

サブアプリケーションを使用するもう 1 つの理由は、クライアントに基づいて制御フローを変更することです。一部のアプリケーションでは、いくつかの共通ページがある場合がありますが、アプリケーションにログインするクライアントに応じて制御フローが変わる場合があります。この制御フローのメタデータをデータベースに保存し、別の struts-config.xml ファイルとともに web.xml ファイル (またはその一部) を生成できます。

Struts 1.x 向けに開発したことがある方は、web.xml ファイル内の多くの要素が Struts 1.1 の struts-config.xml ファイルに移動されていることに気付いたかもしれません。これは、それらがアプリケーション固有になっているためです。複数のサブアプリケーションは、リクエスト URI の相対コンテキスト部分で始まるプレフィックスによって識別されます。一致するアプリケーション プレフィックスがない場合は、デフォルトの構成が選択されます。デフォルト設定には空の文字列プレフィックスが付いています。デフォルト設定を実装するこの方法は、アプリケーションを 1 つだけ定義できる Struts 1.0.x と下位互換性があります。

さまざまな機能モジュールを含む大規模なアプリケーションがある場合、1 つの巨大なアプリケーションを一緒に実行されるサブアプリケーションに置き換える方が合理的です。以下に示す web.xml ファイルは、サブアプリケーションを定義する方法を示しています。


config
/WEB-INF/struts-config-config.xml





config/catalog
/WEB-INF/struts-config-catalog.xml





config/sorter
/ WEB-INF/struts-config-sorter.xml



サブアプリケーションを使用する場合、どのサブアプリケーションが使用されるかを指定するためにコンテキスト依存のリクエスト URI を定義できます。たとえば、フォーム上のアクションは、デフォルトのサブアプリケーションを参照する


、またはカタログ サブアプリケーションのアクション クラスを参照する


のようになります。実際にはこれを行う必要はありません。これを行う場合は、カタログ サブアプリケーションで /listCds を使用できます。基本的なルールは次のとおりです。バージョン 1.0 ではコンテキスト依存だったすべての struts-config.xml パラメーターは、バージョン 1.1 ではサブアプリケーションのプレフィックス固有になります。このようにして、単一のアプリケーションを変更せずにデフォルトのサブアプリケーションと指定されたサブアプリケーションの両方として機能させることができます。

上記は Jakarta Struts 1.1 (2) の学習内容です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? 会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? Apr 19, 2025 pm 04:51 PM

一部のアプリケーションが適切に機能しないようにする会社のセキュリティソフトウェアのトラブルシューティングとソリューション。多くの企業は、内部ネットワークセキュリティを確保するためにセキュリティソフトウェアを展開します。 ...

名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? 名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? Apr 19, 2025 pm 11:30 PM

多くのアプリケーションシナリオでソートを実装するために名前を数値に変換するソリューションでは、ユーザーはグループ、特に1つでソートする必要がある場合があります...

MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? Apr 19, 2025 pm 06:21 PM

システムドッキングでのフィールドマッピング処理は、システムドッキングを実行する際に難しい問題に遭遇することがよくあります。システムのインターフェイスフィールドを効果的にマッピングする方法A ...

Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Apr 19, 2025 pm 11:45 PM

intellijideaultimatiateバージョンを使用してスプリングを開始します...

Javaオブジェクトを配列に安全に変換する方法は? Javaオブジェクトを配列に安全に変換する方法は? Apr 19, 2025 pm 11:33 PM

Javaオブジェクトと配列の変換:リスクの詳細な議論と鋳造タイプ変換の正しい方法多くのJava初心者は、オブジェクトのアレイへの変換に遭遇します...

エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? Apr 19, 2025 pm 11:42 PM

データベース操作にMyBatis-Plusまたはその他のORMフレームワークを使用する場合、エンティティクラスの属性名に基づいてクエリ条件を構築する必要があることがよくあります。あなたが毎回手動で...

Redisキャッシュソリューションを使用して、製品ランキングリストの要件を効率的に実現する方法は? Redisキャッシュソリューションを使用して、製品ランキングリストの要件を効率的に実現する方法は? Apr 19, 2025 pm 11:36 PM

Redisキャッシュソリューションは、製品ランキングリストの要件をどのように実現しますか?開発プロセス中に、多くの場合、ランキングの要件に対処する必要があります。

eコマースプラットフォームSKUおよびSPUデータベースデザイン:ユーザー定義の属性と原因のない製品の両方を考慮する方法は? eコマースプラットフォームSKUおよびSPUデータベースデザイン:ユーザー定義の属性と原因のない製品の両方を考慮する方法は? Apr 19, 2025 pm 11:27 PM

eコマースプラットフォーム上のSKUおよびSPUテーブルの設計の詳細な説明この記事では、eコマースプラットフォームでのSKUとSPUのデータベース設計の問題、特にユーザー定義の販売を扱う方法について説明します。

See all articles