jQuery取得Actionが返すJSONデータ項目の実例記録について(Struts 2)
5262 ワード
ここでは、ページコードとアクションクラスに関するコードを参照してください.
ページコード(jQuery ajax非同期要求取得データ):
バックグラウンドアクション類関連コード(主にJSONデータをどのように返すかを見る):
システムを直接印刷out.println(jsonMassage);そしてreturn SUCCESS;jsonMassageデータをページのsuccessメソッドに戻します.
なぜActionのsaveメソッドはクライアントにどのデータを返すか知っていますか?これはActionのプロファイル構成によって決定されます:jsonMassageで、ここでメソッドsaveがjsonMessage(プロパティ/オブジェクト)を返すように設定されています.jsonMessageがどのようなデータ型であるかについては、ここでは気にしないで、戻りは自動的に彼のデータ型を調べ、対応するデータフォーマットでクライアント-ページに戻ります.
=================================================
この2つのアクション構成はどのような違いがありますか?皆さんは分かりましたか?はい、パラメータの戻り方が違います
ではresultとjsonMassageは何か違いがありますか?みんな調べてみろ...
ページコード(jQuery ajax非同期要求取得データ):
//
function saveDecision() {
var rowid = checkSelected();
var rowData = jQuery("#list").jqGrid('getRowData',
rowid);
var processIsRight = rowData["processIsRight"];
if(rowid==-1){ alert(" ");return; }
else if(processIsRight==0){//
alert(" , ");return;
}
// :
var _decisionMaker = $("#businessModule").find("option:selected").val();
if(_decisionMaker=='' || _decisionMaker == "undefined") { alert(" !"); return;}
else if(rowid>0){
var url = "saveDecision.action?" + getParams();
//document.write(url);
alert(url);
/***/
$.ajax({
url : url,
type : 'POST',
dataType : 'json',
success : function(json) {
//reference: http://blog.csdn.net/jpr1990/article/details/6931027
alert(json);
window.close();
},
error : function() {
alert(' , ..');
//window.close();
}
});
}else{
alert(" ");return;
}
}
バックグラウンドアクション類関連コード(主にJSONデータをどのように返すかを見る):
/**
*
*
0 - .
1 - .
2- .
3 - .
4 - .
5 - .
6 - .
*/
public String save() {
if (assistDecision != null) {
try {
//
Timestamp decision_date = new Timestamp(System.currentTimeMillis());// ,
assistDecision.setDecisionMaker(assistDecision.getDecisionMaker());
assistDecision.setDecisionTime(decision_date);
//
if(this.getIsStartProcess().equals("true")){
assistDecision.setSolutionState(2);// SolutionState :2-
this.decisionExecutorService.saveAssistDecision(assistDecision,true,processId,emgencyInfoProcessId);
}else{
assistDecision.setSolutionState(0);// SolutionState :0-
this.decisionExecutorService.saveAssistDecision(assistDecision,false,processId,emgencyInfoProcessId);
}
jsonMassage = " , !";
} catch (Exception e) {
e.printStackTrace();
jsonMassage = " , ";
System.out.println(jsonMassage);
return SUCCESS;
}
}
return SUCCESS;
}
システムを直接印刷out.println(jsonMassage);そしてreturn SUCCESS;jsonMassageデータをページのsuccessメソッドに戻します.
success : function(json) {
//reference: http://blog.csdn.net/jpr1990/article/details/6931027
alert(json);
window.close();
},
error : function() {
alert(' , ..');
//window.close();
}
なぜActionのsaveメソッドはクライアントにどのデータを返すか知っていますか?これはActionのプロファイル構成によって決定されます:jsonMassageで、ここでメソッドsaveがjsonMessage(プロパティ/オブジェクト)を返すように設定されています.jsonMessageがどのようなデータ型であるかについては、ここでは気にしないで、戻りは自動的に彼のデータ型を調べ、対応するデータフォーマットでクライアント-ページに戻ります.
<action name="saveEvent" class="eventAction" method="saveEvent">
<result name="success" type="json">
<param name="includeProperties">result </param>
</result>
</action>
<action name="saveDecision" class="decisionExecutorAction" method="save">
<result name="success" type="json">
<param name="root">jsonMassage</param>
</result>
</action>
=================================================
<action name="saveEvent" class="eventAction" method="saveEvent">
<result name="success" type="json">
<param name="includeProperties">result </param>
</result>
</action>
<action name="saveDecision" class="decisionExecutorAction" method="save">
<result name="success" type="json">
<param name="root">jsonMassage</param>
</result>
</action>
この2つのアクション構成はどのような違いがありますか?皆さんは分かりましたか?はい、パラメータの戻り方が違います
ではresultとjsonMassageは何か違いがありますか?みんな調べてみろ...