Struts 2アクションの操作
Struts 2では、ほとんどの時間をアクションに費やしています。アクション・クラスにはビジネス・ロジックが含まれ、リソース・バンドルを取得し、データを保持し、検証し、ユーザーに戻すビュー結果ページを選択します。それはStruts 2の心臓部なので、アクションの基本的な概念を理解する必要があります。
1.アクション
Struts 2のアクションでは、インターフェイスや拡張クラスを実装する必要はありませんが、結果ページを返す文字列を返す
execute()
メソッドを実装するだけで済みます。
package com.mkyong.user.action; public class LoginAction{ //business logic public String execute() { return "success"; } }
<package name="user" namespace="/User" extends="struts-default"> <action name="validateUser" class="com.mkyong.user.action.LoginAction"> <result name="success">pages/welcome.jsp</result> </action> <package>
これで、.action拡張子の接尾辞を使用してアクションにアクセスできます。
http://localhost:8080/Struts2Example/User/validateUser.action
デフォルトの.actionは設定可能ですが、必要に応じて ”
struts.action.extension
“の値を変更してください。
2.オプションのアクションインタフェース
Struts 2には、オプションのアクションインタフェース(
com.opensymphony.xwork2.Action
)が付属しています。このインタフェースを実装することで、便利なメリットがもたらされます。ソースコードを参照してください。
package com.opensymphony.xwork2; public interface Action { public static final String SUCCESS = "success"; public static final String NONE = "none"; public static final String ERROR = "error"; public static final String INPUT = "input"; public static final String LOGIN = "login"; public String execute() throws Exception; }
このインターフェイスは本当にシンプルで、5つの一般的な定数を使用しています:
成功、エラー、なし、入力とロジック
。これで、アクションクラスは定数値を直接使用できます。
package com.mkyong.user.action; import com.opensymphony.xwork2.Action; public class LoginAction{ //business logic public String execute() { return SUCCESS; } }
Strutsの多くの開発者がこのActionインタフェースを実装するのが好きな理由は分かりませんが、ActionSupportを拡張する方が良いでしょう。
3. ActionSupport
サポートクラス。インタフェースのデフォルト実装を提供するための一般的なプラクティスです。
ActionSupport(
com.opensymphony.xwork2.ActionSupport
)は、いくつかの重要なインターフェースのデフォルト実装を提供する非常に強力で便利なクラスです:
public class ActionSupport implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable { ... }
-
ActionSupport ** クラスでは、次のことが可能です。
-
1。 Validation
– validate()メソッドを宣言し、内部に検証コードを入れます。
2。テキストローカライゼーション** – リソースバンドルからメッセージを取得するには、GetText()メソッドを使用します。
package com.mkyong.user.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ private String username; private String password; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } //business logic public String execute() { return "SUCCESS"; } //simple validation public void validate(){ if("".equals(getUsername())){ addFieldError("username", getText("username.required")); } if("".equals(getPassword())){ addFieldError("password", getText("password.required")); } } }
ほとんどの場合、そうでない理由がない限り、便利な機能のためにこのクラスを拡張する必要があります。これは、Struts 2の重要なインターフェースの実装方法を理解するのにもとても良い学習クラスです。
4.アクション注釈
Struts 2はアノテーションを非常にうまくサポートしています。XMLファイルを取り除き、アクションクラスの
@ action
に置き換えることができます。
package com.mkyong.user.action; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.ResultPath; import com.opensymphony.xwork2.ActionSupport; @Namespace("/User") @ResultPath(value="/") public class ValidateUserAction extends ActionSupport{ @Action(value="Welcome", results={ @Result(name="success",location="pages/welcome__user.jsp") }) public String execute() { return SUCCESS; } }
Struts 2アノテーションについてもっと知りたい場合は、このリンクをダウンロードしてください://struts2/struts-2-hello-world-annotation-example/[Struts 2アノテーションの例]