Struts2であることを行いたいんだけど(次のエントリで公開)、
それを行うのに、ゼロ・コンフィグレーションにしておきたいので
ここにゼロ・コンフィグレーションの例を載せておきます。
■ゼロ・コンフィグレーションとは
設定ファイルstruts.xmlファイルを書かないので
ゼロ・コンフィグレーション
(どこにもコンフィグレーションを書かないのではなく、
あのテーションで書く)
■お題
Struts2でのエラーメッセージあれこれ
http://blog.goo.ne.jp/xmldtp/e/a4e84399abb40428e4abbab2fb80c419
をゼロ・コンフィグレーションにする
■概要
・struts.xmlをかかない
・パッケージがXXXXの形だったり、パッケージでなかったりしたら、
パッケージ名がXXXX.YYYYになるようにする
・Result,Actionを書く
→org.apache.struts2.convention.annotation.の上記クラスなどをimport
→Struts 2 Convention Plugin2.3.16をダウンロードしてきました
http://mvnrepository.com/artifact/org.apache.struts/struts2-convention-plugin/2.3.16
■ソース
「Struts2でのエラーメッセージあれこれ」のgui.HelloAction.javaを、パッケージを変えて、
struts2.gui.HelloAction.javaにして、以下のようにソースを書きなおしました。
また、struts2-convention-pluginを上記サイトよりダウンロードして、jarを
パスに通しました
それを行うのに、ゼロ・コンフィグレーションにしておきたいので
ここにゼロ・コンフィグレーションの例を載せておきます。
■ゼロ・コンフィグレーションとは
設定ファイルstruts.xmlファイルを書かないので
ゼロ・コンフィグレーション
(どこにもコンフィグレーションを書かないのではなく、
あのテーションで書く)
■お題
Struts2でのエラーメッセージあれこれ
http://blog.goo.ne.jp/xmldtp/e/a4e84399abb40428e4abbab2fb80c419
をゼロ・コンフィグレーションにする
■概要
・struts.xmlをかかない
・パッケージがXXXXの形だったり、パッケージでなかったりしたら、
パッケージ名がXXXX.YYYYになるようにする
・Result,Actionを書く
→org.apache.struts2.convention.annotation.の上記クラスなどをimport
→Struts 2 Convention Plugin2.3.16をダウンロードしてきました
http://mvnrepository.com/artifact/org.apache.struts/struts2-convention-plugin/2.3.16
■ソース
「Struts2でのエラーメッセージあれこれ」のgui.HelloAction.javaを、パッケージを変えて、
struts2.gui.HelloAction.javaにして、以下のようにソースを書きなおしました。
また、struts2-convention-pluginを上記サイトよりダウンロードして、jarを
パスに通しました
package struts2.gui; // セッションで使う import java.util.Map; //(1)リクエストで使うものインポート import javax.servlet.http.HttpServletRequest; import org.apache.struts2.convention.annotation.Action; //ゼロコンフィグレーション import org.apache.struts2.convention.annotation.Result; //ゼロコンフィグレーション import org.apache.struts2.convention.annotation.Results; //ゼロコンフィグレーション import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.SessionAware; // 一般的に・・・ import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator; import com.opensymphony.xwork2.validator.annotations.Validations; //==============================================// // // // Struts2 // // セッション、リクエストのサンプル // // // //==============================================// @Results({ @Result(name="success", location="/hello.jsp"), @Result(name="input", location="/index.jsp"), }) public class HelloAction extends ActionSupport implements SessionAware,ServletRequestAware{ private String name; // sタグの変数 private Map<String,Object> session; // セッションの宣言 private HttpServletRequest request; // (2)リクエストの宣言 // sタグで必要なアクセサ public String getName() { return name; } public void setName(String name) { this.name = name; } // セッションで必要なアクセサ public void setSession(Map<String,Object> session) { this.session = session; } // (3)リクエストで必要なアクセサ記述 public void setServletRequest(HttpServletRequest request) { this.request = request; } public HttpServletRequest getServletRequest() { return this.request; } @Validations(requiredStrings = @RequiredStringValidator(fieldName = "name", message = "名前を入力してください")) @Override public void validate() { try { int kai = Integer.parseInt(getServletRequest().getParameter("start")); if (kai < 0) { addFieldError("start","開始数が負の数"); } } catch(Exception e) { // 数字でなかったら、なにもしない addActionError("開始数が数字でない"); } } @Action("hello") public String execute() { //======================================// // 値の取得 // //======================================// // sタグのnameは、何もしなくても取得されている // セッションでの取得 int kai; String kaistr = (String)session.get("kaisu"); if ( kaistr == null) { kai = 0; } else { kai = Integer.parseInt(kaistr); } // (4)リクエストパラメタでの取得 String start = getServletRequest().getParameter("start"); if (start != null) { try { kai = Integer.parseInt(start); } catch(Exception e) { // 数字でなかったら、なにもしない } } //======================================// // 処理 // //======================================// kai++; // 今回の分を足す String msg = "Hello World" + name + ":"+ kai+"回目"; //======================================// // 出力 // //======================================// // セッション書き出し session.put("kaisu", String.valueOf(kai)); session.put("msg", msg); this.addActionMessage("成功1"); return SUCCESS; } } |