SAStrutsで簡単Ajax
SAStrutsで簡単にAjaxを扱えるようにしました。サンプルはこんな感じ。
アクションで、ResponseUtil#write()を使ってレスポンスに文字列を書き出すだけ。ResponseUtil#write()はコンテントタイプやエンコーディングを指定することもできます。
package tutorial.action;import org.seasar.struts.annotation.Execute;
import org.seasar.struts.util.ResponseUtil;public class AjaxAction {
@Execute(validator = false)
public String index() {
return "index.jsp";
}@Execute(validator = false)
public String hello() {
ResponseUtil.write("こんにちわ");
return null;
}
}
JSPはこんな感じ。JavaScriptのライブラリは、もちろん流れるようなインターフェースのjQuery。
<%@page pageEncoding="UTF-8"%> <html> <head> <title>Tutorial: Ajax</title> <link rel="stylesheet" type="text/css" href="${f:url('/css/sa.css')}" /> <script src="${f:url('/js/jquery.js')}"></script> </head> <body> <h1>Tutorial: Ajax</h1> <span id="message"></span><br /> <input type="button" value="hello" onclick="$('#message').load('hello');"/> </body> </html>
$('#message').load('hello')だけで、idがmessageの要素をhelloメソッドの呼び出し結果で置き換えることができます。jQuery楽過ぎ。これだけ簡単なら、JavaScriptを自動的に吐き出すタグライブラリなんていらないね。
明日か明後日にSAStruts1.0.3-rc1をリリースする予定です。