JSON-RPC 大家都知道了,我比较反感JSON-RPC的客户端/服务器端的交互方式,个人认为还是DWR的框架似乎好一些,不过单纯比较后台代码的风格,似乎JSON-RPC的代码更好些---纯粹个人喜好。
虽然不喜欢JSON-RPC的框架,不过对于JSON的javaObject--javascriptObject的转换代码倒是很欣赏,因此直接把JSON-RPC的这部分代码直接拿过来用,感觉也不错。当然,这已经跟AJAX关系不大了。
1.将jsonrpc-1.0.jar包含在你的project的classpath中,
2.写个简单的Util类,将你的java Object 序列化成javascript的字符串。
public class JSONUtil {
public static final JSONSerializer se = new JSONSerializer();
private static Logger log = Logger.getLogger(JSONUtil.class);
static
{
try
{
se.registerDefaultSerializers();
}
catch (Exception e)
{
log.error(e);
}
}
public static String toJSON(Object obj)
{
try
{
SerializerState state = new SerializerState();
Object retuObj = se.marshall(state, obj);
String retuStr = retuObj.toString();
//retuStr.replaceAll("
\\\"", "
\\'");
//log.debug("JSONStr:"+retuStr);
return retuStr;
}
catch (Exception e){
log.error(e);
return obj.toString();
}
}
3. 客户端的jsp中只要简单的加上这段js
<script language=javascript>
eval('jsObject = <%=JSONUtil.toJSON(javaObject)%>'+';');
</script>
javaObject是你自己的java类的实例,这样你就可以在js中直接操作jsObject 这个js对象了。