Struts 2のresultの様々なtypeタイプとプロファイルの詳細

5493 ワード

Struts2             :
Chain Result-->type="chain"    Action 
Dispatcher Result -->type="dispatcher"      ,    JSPFreeMarker
Result -->type="freemarker"  FreeMarker  HttpHeader 
Result -->type="httpheader"       Http  Redirect 
Result -->type="redirect"      URLRedirect Action 
Result -->type="redirectAction"      ActionStream 
Result -->type="stream"      InputSream  ,          Velocity 
Result -->type="velocity"  Velocity  XLST Result -->type="xslt"  XML/XLST  PlainText 
Result -->type="plainText"        ,             result     JasperReports Plugin,      JasperReport       。

dispatcher:ページ転送に使用され、ページジャンププロセスはずっと同じスレッドであり、Actionのデータはずっと保存されています.
redirect:ページを返したり、actionを返したり、URLにリンクしたりすることができます.       欠点:redirectはhttp返却コード(SUCCESS)と返却されたページの位置を一緒にWebサーバに再送し、収容後にWebサーバから新しいHTTPリクエストが生成されると、新しいスレッドが生成され、元のActionで実行されたスレッドに保存されたデータにアクセスできません.したがってresultはActionのデータを含む必要があり、redirectは実行可能な方法ではありません.新しいHTTPリクエストはサーブレットコンテナの新しいスレッドで処理されるため、ActionContextのすべてのステータスは存在しません.
chain:機能はredirectのaction転送と似ていますが、redirectaction転送機能とは異なり、Actionのデータを同じHTTPリクエストに保存することができます.
struts 2の他のことについて
 
===============   ===============
struts.xmlのpackageのnameは任意に定義でき、継承時にのみ使用できます.
===============  =============struts.xmlでdefault.proertiesのkeyに対応する値をは、パッケージにaction定義がないことを示し、パッケージによってのみ継承されて定義できます.
=============  ネーミングスペース==========異なるアプリケーションを分割構成しない場合は、現在のパッケージがデフォルトのネーミングスペースにあることを示します.
namespace=「/hello」リクエストパスが/hello/registerに変更されました
フォームパスを変更し、必ず手動で.action<:form action="/hello/register.action">
検索方法:namespaceがデフォルトで、フォームパスが/hello/register.action strutsが名前空間を見つけられなかった場合は、自動的にデフォルトの名前空間に検索されます.
=============================     モジュール化された構成 =============================

struts_1.xmlとstruts_2.xmlが標準strustのxmlプロファイルincludeである場合、strutsは起動後にstruts_1.xmlとstruts_2.xmlの構成情報をメモリに一緒にロードします.
===============  Struts 2 MVC==============FilterDispatcher---コアコントローラ
各action------ビジネスコントローラ --------- ビジネスロジックコンポーネントの呼び出し---DAOの呼び出し---データベースインタラクション
 
 
=================    モジュール開発===================
srcの下でstruts 1.xmlstruts 2.xmlを確立する
異なる開発者は、独自のxmlプロファイルを書くだけでstruts.xmlに
----------------------struts 1.xmlxml宣言、DTD情報...  構造はstruts.xmlと同じ   ... ......
----------------------struts 2.xmlxml宣言、DTD情報...  構造はstruts.xmlと同じ   ... ......
 
================   モデル駆動===================
**属性駆動**:フォームのフィールドはアクションの属性として存在します.
**モデル駆動**:オブジェクトをJavaBeanでマウントするActionFormと同様
モデルBeanpublic class User{ private String username; private String password; private String repassword; private int age; private Date date;
 //setter... getter...}
###ValueStack###--値スタック
ModelDriven このインタフェースで使用される汎用型は、  モデルはどんなタイプですかその汎用型はどんなタイプですか------T getModel()
Actionの実装が必要 ModelDrivenインタフェース
public class RigesterAction extends ActionSupport  implements ModelDriven {
 private User user = new User(); public User getModel() {  return user; }
 @Override public String execute() throws Exception {
  return SUCCESS; }}
 
====================   Preparableインタフェース===================
Preparableインタフェースにはvoid prepare()throws Exceptionメソッドがあり、そのインタフェースのActionクラスを実現し、このactionであるメソッドを実行する前にprepare()を実行し、action準備メソッドと呼ぶ.
 
=========================    特定のエラーメッセージを表示する
 username
前の「原点」を取り除くにはfielderror.ftlテンプレートを自分で修正して前のポイントコードを取り除く必要があります