ホームページ  >  記事  >  Java  >  JSPのアクションとは何ですか

JSPのアクションとは何ですか

(*-*)浩
(*-*)浩オリジナル
2019-05-15 11:18:0810492ブラウズ

JSP の Action クラスは、ユーザー リクエストとビジネス ロジックの間のブリッジです。各アクションは、顧客のビジネス エージェントとして機能します。「RequestProcessor」クラスがリクエストを前処理するとき、および Action インスタンスを作成した後、独自の「processActionPerform」メソッドを呼び出すことができます。

JSPのアクションとは何ですか

アクション クラスはユーザー リクエストとビジネス ロジックの間のブリッジであり、各アクションは顧客のビジネス エージェントとして機能します。 RequestProcessor クラスがリクエストを前処理するとき、Action のインスタンスを作成した後、独自の processActionPerform() メソッドを呼び出します。このメソッドは、Action クラスのexecute() を呼び出します。

推奨コース: Java チュートリアル

以下は、jsp のアクションの機能を紹介します。

アクションの完了

<action path="/aFullAction" 
type="somePackage.someActionClass">  
name="someForm" 
input="someJSP.jsp" 
<forward name="successful" path="someJSP.jsp"/>  
<forward name="failed" path="someOtherJSP.jsp"/>  
</action>

まず、Struts の ActionServlet がリクエストを受け取り、それに応じてstruts へ - config.xml の設定により、対応するマッピングが特定されます。次に、フォームのスコープがリクエストである場合、または定義されたスコープ内でフォームを見つけるのが難しい場合は、新しいフォーム インスタンスを作成します。フォーム インスタンスを取得した後、呼び出します。そのリセット ( ) メソッドを呼び出し、フォーム内のパラメータをフォームに入力します。validate 属性が false でない場合は、validate() メソッドを呼び出します。validate() が空ではない ActionErrors を返した場合は、URI に転送されます。 input 属性で指定され、空の ActionErrors が返された場合は、Action のexecute() メソッドを実行し、返された ActionForward に基づいてターゲット URI を決定します。

これの影響は、execute() は validate() が成功した後にのみ実行され、input 属性で URI が指定されることです。

JSP アクションのみ##​​#

<action path="/aJSPOnlyAction" 
type="org.apache.struts.actions.ForwardAction" 
parameter="someOtherJSP.jsp" 
/>
まず、ActionServlet はリクエストを受信した後、ForwardAction のexecute()メソッドを呼び出し、設定されたパラメータの属性値に従ってexecute()を実行します。そのURIに。

これの影響は次のとおりです: フォームはインスタンス化されません。より現実的な状況としては、フォームがリクエストの上位レベルのスコープで定義されているか、このアクションがリクエストの後にシステムとして機能するために使用されている可能性があります。パラメータを変更する必要があるのは、システムを再コンパイルせずにこの構成ドキュメントのみを変更することです。

2 つのアクションが 1 つのフォームに対応します

<action path="/anAction" 
type="somePackage.someActionClass">  
name="someForm" 
input="someJSP.jsp" 
<forward name="successful" path="/anotherAction.do"/>  
</action>  
<action path="/anotherAction" 
type="somePackage.someOtherActionClass">  
name="someForm" 
input="someOtherJSP.jsp" 
<forward name="successful" path="someResultJSP.jsp"/>  
</action>
個々のアクションに関する限り、処理は完了していません。実際の違いはアクションですか?この組み合わせパターンを使用して、コマンド オブジェクト (フォーム) を渡すことができます。フォームのreset()メソッドとvalidate()メソッドは後者のアクションでも呼び出されるため、フォーム内の情報が上書きされないようにする必要があることに注意してください。


処理方法は大きく 2 つのタイプに分けられます:

a) 前のアクションがフォームを次のアクションに渡すつもりであることを示すインジケーターをリクエストに入れます。次のアクションのアクションがその形式で値を保持できることを示します。このメソッドは、forward を使用する場合にのみ使用できます。

b) 転送の代わりにリダイレクトを使用する場合、インジケーターをセッション以上のレベルに配置し、コマンド チェーンの最後のリンクでこのインジケーターをクリアできます。

<action path="/anAction" 
type="somePackage.someActionClass">  
name="someForm" 
input="someJSP.jsp" 
<forward name="successful" path="/anotherAction.do" redirect="true"/>  
</action>  
<action path="/anotherAction" 
type="somePackage.someOtherActionClass">"  
name="someOtherForm" 
input="someOtherJSP.jsp" 
<forward name="successful" path="someResultJSP.jsp"/>  
</action>
この組み合わせメソッドは、プロセスの点では前のメソッドとあまり変わりませんが、2 つのアクションのフォームが個別に提供されるようになったので、コードがより明確に見えます。そのため、WEB アプリケーションの入力と出力を別々に処理できます。

後者のアクションでもこれらのパラメーターをフォームに書き込もうとすることに注意してください。ただし、次のように処理できます:

a) 後者のアクションでは別の属性名のセットを使用します。 form ;

b) ゲッターのみが提供され、セッターは提供されません。

大まかな処理は次のとおりです。

前のアクションは入力を受け取り、それを検証し、データをビジネス層または永続化層に書き込み、次のアクション: 後者のアクションでは、ビジネス レイヤー/永続レイヤーからデータを手動で取得し、それを (他のメソッドを通じて) フォームに書き込み、表示のためにフロントエンド JSP に渡します。

この利点は、入力フォームの値を保持する必要がないため、転送の代わりにリダイレクトを使用できることです。これにより、2 つのアクション間の結合が軽減され、不必要な繰り返しの送信が回避されます。

以上がJSPのアクションとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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