JSON-RPC 大家都知道了,我比較反感JSON-RPC的客戶端/服務(wù)器端的交互方式,個人認(rèn)為還是DWR的框架似乎好一些,不過單純比較后臺代碼的風(fēng)格,似乎JSON-RPC的代碼更好些---純粹個人喜好。
???雖然不喜歡JSON-RPC的框架,不過對于JSON的javaObject--javascriptObject的轉(zhuǎn)換代碼倒是很欣賞,因此直接把JSON-RPC的這部分代碼直接拿過來用,感覺也不錯。當(dāng)然,這已經(jīng)跟AJAX關(guān)系不大了。
???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對象了。