View Javadoc

1   package org.seasar.cubby.action;
2   
3   import java.text.MessageFormat;
4   import java.util.Map;
5   
6   import org.seasar.cubby.util.Messages;
7   
8   /**
9    * アクションの基底クラスです。アクションはビューのコントローラーの役割を果たします。
10   * @author agata
11   */
12  public abstract class Action {
13  
14  	/**
15  	 * アクションエラーオブジェクト
16  	 */
17  	protected ActionErrors errors;
18  
19  	/**
20  	 * 揮発性メッセージ
21  	 */
22  	protected Map<String, Object> flash;
23  
24  	/**
25  	 * Actionの実行前に呼ばれます。パラメータのバインディング前に呼ばれるので、パラメータを使用したい場合はリクエストから直接取得する必要があります。
26  	 */
27  	public void initialize() {
28  	}
29  
30  	/**
31  	 * フォーワードの直前で呼ばれます。対象のActionクラスのフォワード先で必ず使用する共通のデータなどを取得する目的で使用します。
32  	 */
33  	public void prerender() {
34  	}
35  
36  	/**
37  	 * フォワードの直後で呼ばれます。通常はあまり使用することはないでしょう。
38  	 */
39  	public void postrender() {
40  	}
41  
42  	/**
43  	 * アクションエラーオブジェクトを取得します。
44  	 * @return アクションエラーオブジェクト
45  	 */
46  	public ActionErrors getErrors() {
47  		return errors;
48  	}
49  
50  	/**
51  	 * アクションエラーオブジェクトをセットします。
52  	 * @param errors アクションエラーオブジェクト
53  	 */
54  	public void setErrors(ActionErrors errors) {
55  		this.errors = errors;
56  	}
57  
58  	/**
59  	 * 揮発性メッセージを取得します。
60  	 * @return 揮発性メッセージ
61  	 */
62  	public Map<String, Object> getFlash() {
63  		return flash;
64  	}
65  
66  	/**
67  	 * 揮発性メッセージをセットします。
68  	 * @param flash 揮発性メッセージ
69  	 */
70  	public void setFlash(Map<String, Object> flash) {
71  		this.flash = flash;
72  	}
73  
74  	/**
75  	 * メッセージリソースから指定されたキーのメッセージを取得します。
76  	 * @see Messages#getText(String, Object...)
77  	 * @param key メッセージキー
78  	 * @return メッセージ
79  	 */
80  	public String getText(String key) {
81  		return Messages.getText(key);
82  	}
83  
84  	/**
85  	 * メッセージリソースから指定されたキーの値を取得し、置換処理を行ったメッセージを取得します。
86  	 * <pre>
87  	 * msg.sample2=メッセージ中に置換文字列を使用できます(引数1={0}, 引数2={1})。
88  	 * 
89  	 * // 「メッセージ中に置換文字列を使用できます(引数1=foo, 引数2=bar)。」
90  	 * String message = getText("msg.sample2", "foo", "bar");
91  	 * </pre>
92  	 * @see Messages#getText(String, Object...)
93  	 * @param key メッセージキー
94  	 * @param args 置換文字列
95  	 * @return 置換処理後のメッセージ
96  	 */
97  	public String getText(String key, Object... args) {
98  		String text = getText(key);
99  		MessageFormat format = new MessageFormat(text);
100 		return format.format(args);
101 	}
102 
103 }