Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

vs Railsを意識するならば

うーん。寝すぎた。
せっかくなのでRailsで出来てるようなものもサポートしていきたいなとか思ってます。
ということでresponseが"text/javascript"であるケース。
RJSと同じようにTemplate使う場合はvelocityで十分だなあ。
なんとなくですがscript.aculo.usを使いますよと。
でTemplateですよと。

javascript.vm
Element.update("title", $title);
new Insertion.Bottom("target", "<li>$value</li>");
new Effect.Highlight('target',{duration:1});

これを返し、そのままevalするだけ。
これぐらいのjavascriptなら書いてもいいかなって気がする。
(敢えてjavascriptBuilderはおいて置く。必要性があれば)
まーRJSのところをVelocityにしてるだけだし多分簡単にできそう。
問題は返し方で
JSF(FacesServelt)が土台である場合

  • Renderを書いてそいつ経由で吐く
  • ExternalContextからOutputStreamで吐く
  • とにかく吐き出す

ふつーのServlet(AjaxServelet)である場合

  • そのままOutputStreamで吐く

やっぱこう考えると別Servletの方がシンプルで自由度高いね。
S2Velocity使えばVelocityも楽々になるんではないかな。

参考:
くまくまーさんとこ
http://wota.jp/ac/?date=20051205#p01
JSFjavascriptを吐き出すサンプル(下のほうでalert文を平文で返しているサンプルがあります)
JSFとAjaxは共存しにくい!? - def __mopemope__(self, *args, **kwargs):
うくく。