トップ «前の日記(2007-01-08 (Mon)) 最新 次の日記(2007-01-10 (Wed))» 編集

ふたつの川うるおう日記


2007-01-09 (Tue)

_ [Java][Ashikunep][Seasar] 1Action 1ActionFormを1Event 1ActionFormへ

以下途中で脈略なくなり、結論としていらないっぽい。

最近FormでSubmitする時にSubmitする前と後で同じもの、StrutsでいうところのActionFormやS2StrutsのPOJO(Dto)、IkushipeでいうところのModelを使うのが使いにくい気がしてきた。StrutsでいうとこのAction単位、Ikushipeでいうところのページ単位でActionFormやModelを持つんじゃなくて、その中のイベントごとにSubmitする前と後を定義できると嬉しいかもしれない(Strutsの場合はS2Struts限定)。特に1画面でいろんなSubmitを使うAjaxなんかで。

  • S2Strutsの例
@StrutsAction(name = "posixAccountDto", parameter = "method", validate = false)
public interface LoginAction {
    @StrutsActionForward(path = "/user/index.html")
    public static final String USER = "USER";
    @StrutsActionForward(path = "/user/login.html")
    public static final String ERROR = "ERROR";
    public String login();
}

を出来るかどうかは別として、

public interface LoginAction {
    @StrutsActionForward(path = "/user/index.html")
    public static final String USER = "USER";
    @StrutsActionForward(path = "/user/login.html")
    public static final String ERROR = "ERROR";
    @StrutsAction(submitDto = "posixAccountDto", returnDto = "userDto", parameter = "method", validate = false)
    public String login();
}

とか。でもS2Sturtsの場合、Actionにgetter用意しとけばそうなるからいらないか・・・。

  • Ikushipeの例
@WebPage(model = LoginModel.class)
public class LoginPage {
    public Class<UserPage> login(LoginModel loginModel) {
        ...
        return UserPage.class;
    }
}

を出来るかどうかは別として、

public class LoginPage {
    public Class<UserPage> login(@EventPageModel LoginModel loginModel, @ResultPageModel UserModel userModel) {
        ...
        return UserPage.class;
    }
}

@EventPageModelにリクエストパラメータを入って、ページ偏移後のattrに@ResultPageModelの中身が展開される感じ。@EventPageModelもattrに残す。こうなるとそのページで起こりうる複数のイベントを記述できる。ついでに偏移後に使うページに複数のフォームがあるかもしれないのでモデルも複数であっても構わない。

でもこれもS2Strutsみたいにgetterでattrに出せるようにすればいらないか。とりあえずの手段だとattrにセットするsetAttributeってのを作るとか。

@WebPage(model = LoginModel.class)
public class LoginPage {
    public Class<UserPage> login(LoginModel loginModel, UserModel userModel) {
        ...
        setAttribute("userModel", userModel);
        return UserPage.class;
    }
}
| Bookmark:

_ [Java][Ashikunep] 1Page 1Modelを1Event 複数Modelへ

なんかこういうのが欲しい気がしてきた@Ikushipeの例。

public class UserPage {
    public Class<IndexPage> logout(@EventModel UserModel userModel) {
        ...
        return IndexPage.class;
    }
    public Class<UserPage> submit(@EventModel SubmitModel submitModel, @EventModel UserModel userModel) {
        ...
        return UserPage.class;
    }
}

@EventModelがformのパラメータに対応するもの。submitModelとuserModelで同じsetter/getterがあったら両方にパラメータ設定しちゃう。1Page 1Modelにするならこうかな。

@WebPage(model = { LoginModel.class , UserModel.class })
public class UserPage {
    public Class<IndexPage> logout(UserModel userModel) {
        ...
        return IndexPage.class;
    }
    public Class<UserPage> submit(SubmitModel submitModel, UserModel userModel) {
        ...
        return UserPage.class;
    }
}

思いつきだからいろいろダメな気 or 他にもっと良いやり方がある気がしないでもない。もっと良く考えよう。

| Bookmark:

_ [大学] 卒論提出

期限15日って聞いてなかったんだな。提出先がまだ用意できてない罠。ダミーページだけ用意。

| Bookmark:

_ [Work] 学会サイト作成

卒論提出やってて、別件の学会サイト作成の件について話してきたら、今日明日で欲しいようだったので、急遽そっちの作業したら一日終わってしまった。2ヶ月ぐらい前に途中まで作業してたやつを画像やタグを仕上げて公開した。ICMI 2007で検索してトップページに琴の写真が出てくるサイト。ICMIって略称の学会は多くて何個かヒットするけどACMのやつです。当分サイトデザインはお腹いっぱい。

| Bookmark:
[]

| Return to page top | Vicuna CMS - WordPress Theme - Vicuna Ninja Style for tDiary |