DWR心得
3036 ワード
以前は簡単にdwrを応用したことがあって、感じはとても良くて、最近また1つの小さいプロジェクトの中でDWRを使って、いくつかの収穫が総括します:
1、DWR暴露の方法では、入力パラメータは基本タイプ、Stringおよび配列などであり、配列はJavascriptのArrayオブジェクトに対応する.戻り値のタイプは、基本タイプ、配列、List、Mapなどを除いて、通常のJavaオブジェクトとすることができますが、convertorが必要です.
コードクリップ:
dwr.xmlの対応する構成:
2、DWRのデバッグ機能は非常に強く、ページ操作の返却対象は一般的にJSONのような文字列形式で表示され、非常に役に立つ.
3.JSON文字列をパラメータとしてDWRに渡すメソッド呼び出しをバックグラウンドでorg.json.JSONObjectはフロントからの値を取得し、可能なコードは以下の通りです.
フロントJavascriptコード(部分):
バックグラウンドJavaコード(部分):
4、DWRでサーブレットAPIを取得する:
参照先:
JSON使用:http://samueli.iteye.com/blog/225841
添付ファイルには、方佳玮が整理した「DWR中国語ドキュメントv 0.9」とDWR入門ドキュメントが含まれています.
また、このまとめを参考にしてください.http://blog.chinaunix.net/u1/53616/showart_420358.html
1、DWR暴露の方法では、入力パラメータは基本タイプ、Stringおよび配列などであり、配列はJavascriptのArrayオブジェクトに対応する.戻り値のタイプは、基本タイプ、配列、List、Mapなどを除いて、通常のJavaオブジェクトとすることができますが、convertorが必要です.
コードクリップ:
//TreeRender
public List<TreeNode> createTree();
dwr.xmlの対応する構成:
<create creator="new" javascript="TreeRender">
<param name="class" value="cn.com.util.TreeRender" />
<include method="createTree" />
</create>
<convert converter="bean" match="cn.com.util.TreeNode">
<include value="id,fid,text,url,title"/>
</convert>
2、DWRのデバッグ機能は非常に強く、ページ操作の返却対象は一般的にJSONのような文字列形式で表示され、非常に役に立つ.
3.JSON文字列をパラメータとしてDWRに渡すメソッド呼び出しをバックグラウンドでorg.json.JSONObjectはフロントからの値を取得し、可能なコードは以下の通りです.
フロントJavascriptコード(部分):
//Student , JS new
function Student(id, name, age)
{
this.id = id;
this.name = name;
this.age = age;
}
//get id, name, age from page and construct student js object
var a = new Student(idVal, nameVal, ageVal);
var json = JSON.stringify(a);
//construct array parameter from page element
var arr = new Array();
var trObj = btn.parentNode.parentNode.nextSibling.nextSibling.nextSibling;
var trChilds = trObj.childNodes;
for(var i = 0; i < trChilds.length; i++){
if(trChilds[i].getAttribute("id") == "ok"){
arr.push(trChilds[i].innerText);
}
}
try
{
AjaxQuery.query(arr, json, callbackfun);
}catch(e){
alert(e);
}
バックグラウンドJavaコード(部分):
//...
log.info(" JSON :" + json);
JSONObject jsonObject = null;
try{
jsonObject = new JSONObject(json);
}catch(JSONException e){
log.error(" JSON :" + e.getMessage());
e.printStackTrace();
}
String id = "";
String name = "";
int age = "";
try {
id = jsonObject.getString("id");
name = jsonObject.getString("name");
age = jsonObject.getInt("age");
} catch (JSONException e1) {
log.error(" :" + e1.getMessage());
e1.printStackTrace();
}
//...
4、DWRでサーブレットAPIを取得する:
import uk.ltd.getahead.dwr.WebContext;
import uk.ltd.getahead.dwr.WebContextFactory;
//...
WebContext ctx = WebContextFactory.get();//DWR Web
HttpServletRequest request = ctx.getHttpServletRequest();// WebContext Request
HttpSession session = ctx.getSession();// WebContext Session
参照先:
JSON使用:http://samueli.iteye.com/blog/225841
添付ファイルには、方佳玮が整理した「DWR中国語ドキュメントv 0.9」とDWR入門ドキュメントが含まれています.
また、このまとめを参考にしてください.http://blog.chinaunix.net/u1/53616/showart_420358.html