コントローラ
Controller (コントローラー) は、ブラウザーによって開始されたすべてのリクエストを処理し、応答コンテンツの論理処理を決定する責任を負います。コントローラーは標準の Java クラスであり、基本クラスを継承する必要はありません。 . クラスを通じてこのメソッドはインターフェースを外部に公開し、このメソッドの戻り値によってブラウザーへの応答の具体的な内容が決まります
以下は WebMVC モジュールでのコントローラーの記述例です。
@Controller public class DemoController { @RequestMapping("/sayhi") public IView sayHi() { return View.textView("Hi, YMPer!"); } }
http://localhost:8080/sayhi
,得到的输出结果将是:Hi, YMPer!
上記のコードから、次の 2 つのアノテーションがあることがわかります:
- @Controller: クラスをコントローラーとして宣言すると、フレームワークが自動的にスキャンしますこのアノテーションを宣言し、起動時にコントローラーとして登録するすべてのクラス
@RequestMapping: コントローラー リクエスト パス マッピングを宣言します。スコープ: クラスまたはメソッド。singleton: コントローラーがデフォルトであるシングルトンかどうかを指定します。 true;
value: コントローラー リクエスト パス マッピング、必須パラメーター。
メソッド。デフォルトは次のとおりです。 GET メソッド、値の範囲: GET、HEAD、POST、PUT、DELETE、OPTIONS、TRACE; header[]: リクエスト ヘッダーに存在する必要があるヘッダー名 param[]: リクエストに存在する必要があるパラメーター名;
例 1:
リクエスト ヘッダー パラメーターには x- が含まれている必要があります。 requested-with=XMLHttpRequest (つまり、AJAX リクエストであるかどうかを判断するため); リクエストパラメータに name パラメータが存在する必要があります
@Controller(singleton = false) @RequestMapping("/demo") public class DemoController { @RequestMapping(value = "/sayhi", method = {Type.HttpMethod.POST, Type.HttpMethod.PUT}, header = {"x-requested-with=XMLHttpRequest"}, param = {"name=*"}) public IView sayHi() { return View.textView("Hi, YMPer!"); } }
@Controller および @RequestMapping アノテーションを使用してコントローラーとコントローラー メソッドを設定する方法
コントローラー メソッドは public で変更する必要があります。そうしないと無効になります。 @RequestMapping アノテーションもコントローラーで宣言されているため、リクエスト パスはコントローラー メソッドのマッピングは次のようになります: /demo/sayhi;上の例は、応答結果を制御する方法を示しています。例 2:
注釈を使用して応答ヘッダーのパラメーターを設定します:
from = "china"
age = 18
- 注釈を使用してビューとコンテンツを返すようにコントローラーを設定します: "Hi, YMPer!"
@Controller @RequestMapping("/demo") public class DemoController { @RequestMapping("/sayhi") @ResponseView(value = "Hi, YMPer!", type = Type.View.TEXT) @ResponseHeader({ @Header(name = "from", value = "china"), @Header(name = "age", value = "18", type = Type.HeaderType.INT)}) public void sayHi() { } }この例では 3 つのアノテーションが使用されています:
- 値を返すコントローラー メソッドを設定するときに応答ヘッダー パラメーターを追加します。 []: 応答ヘッダー @Header パラメーターのコレクション;
@ResponseView: コントローラー メソッドがデフォルトでビュー オブジェクトを返すことを宣言します。メソッドに戻り値がない場合、または戻り値が無効な場合にのみ使用されます
name: ビュー テンプレートファイル パス、デフォルトは "";
type: ファイル タイプを表示、デフォルトは Type.View.NULL;
- name: 応答ヘッダーのパラメーター名、必須のパラメーター。応答ヘッダー パラメーターの値、デフォルトは ""; タイプ: 応答ヘッダー パラメーターのタイプ、STRING、INI、DATE をサポート、デフォルトは Type.HeaderType.STRING;
@Header: パラメーター転送のみの要求応答ヘッダーのキーと値のペアを宣言します。