SAStrutsで簡単Ajax

SAStrutsで簡単にAjaxを扱えるようにしました。サンプルはこんな感じ。


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;
}
}

アクションで、ResponseUtil#write()を使ってレスポンスに文字列を書き出すだけ。ResponseUtil#write()はコンテントタイプやエンコーディングを指定することもできます。
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をリリースする予定です。