㈠ struts2中,jsp頁面通過ajax訪問了action,action如何返回一個json數據給這個jsp頁面,
後台:
public class pageAction extends ActionSupport{
private String username;
private String password;
private String cmd;
public String execute(){
String result = "";
String message = "";
//創建流
PrintWriter out = null;
//創建json對象
JSONObject json = new JSONObject();
cmd = ServletActionContext.getRequest().getParameter("cmd");
username = ServletActionContext.getRequest().getParameter("username");
password = ServletActionContext.getRequest().getParameter("password");
//System.out.println("username:"+username+",password:"+password);
if("admin".equals(username) && "admin".equals(password)){
json.put("content", "true");
}else{
json.put("content", "輸入的賬號或密碼有誤!");
}
out.write(json.toString());
return SUCCESS;
}
}
前台:
<script type="text/javascript">
function checkAnswer() {
//獲得輸入的賬號和密碼的值
var username= document.getElementById("username").value;
var password= document.getElementById("password").value;
dataStr = {
checkname : username,
checkpass : password
};
jQuery
.ajax( {
type : "POST",
url : "ajax/checkAnswer.action?temp=" + Math.random(),
data : dataStr,
dataType : "json",
success : function(root) {
if ("true" == root.content) {
jQuery.messager.alert("操作提示", "登錄成功!", "info");
} else {
jQuery.messager.alert("操作提示", root.content, "info");
}
}});
}
</script>
試試吧,大體是這樣的格式,可能還會有一些小錯誤,注意下就好!
還要注意下在Structs里配置時:
<action name="seekcardAction" class="seekcardAction" method="returnResult">
<result type="json" /> //注意返回類型
</action>
㈡ extjs和struts2的結合使用,在action中如何給extjs的form中的回調函數傳json值
action里定義private boolean success; 提供get set方法
再在配置文件里
<action name="add" class="action" method="add">
<result type="json">
<param name="includeProperties">success,id</param>//前台可以接收的參數內
</result>
</action>
如果容success為true 就會調用success:function(form, action) {action.result.id//就可以取到後台傳到前台的參數值了}
如果success為false就會調用failure:function(form, action) {}
註:extjs的form提交其實也是ajax提交
㈢ struts2怎麼返回json數據
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN"
"
<struts>
<packagename=""extends="json-default"namespace="">
<actionname=""class=""method="">
<resulttype="json">
以下是變數名為loginUser對象的某些指定屬性
<paramname="includeProperties">
loginUser.id,
loginUser.loginName,
loginUser.name,
loginUser.roleNames
</param>
以下是變數名為loginUser對象的全部屬性,多個對象用逗號
<paramname="includeProperties">
loginUser.*,
loginUser1.*
</param>
以下是集合里的某些指定屬性
<paramname="includeProperties">
weekScheles[d+].id,
weekScheles[d+].startDate,
weekScheles[d+].endDate,
weekScheles[d+].title,
weekScheles[d+].scheleCount
</param>
</result>
</action>
</package>
</struts>
注意package標簽,extends要寫成json-default
Struts2處理JSON只需要在xml文件里就可以完成,但是要注意,能夠直接作為JSON返回的必須是Action類里的屬性,方法中的屬性不能使用此方式直接返回
㈣ java 後台接收json數據 我想在struts2 的action里,接收ext傳來的json數據 用什麼接收啊
只要從parameter里接收string類型就可以,然後將json字元串轉換成你需要的東西
㈤ struts中如何返回json格式的數據
哥們你都沒理解!
首先,你可以寫個公共的方法用來輸出json的,所以就不用每次都寫!
protected PrintWriter out() {
response.setCharacterEncoding("UTF-8");
PrintWriter writer = null;
try {
writer = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
return writer;
}
然後 out()..print("這里放你的json字元串");
我一般是用json-lib包,這包轉化;
如 我現在是轉化的集合 JSONArray jsonArray = JSONUtil.getJSONArray(searchList);
然後我就把這個輸出去,out().print(jsonArray.toString());,親就可以去前台接收了
Struts2返回的方法是 return null;
如:
public String getDutyUserShow() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
List<EcsDutyInfoDTO> searchList = ecsDutyService
.findDutyUserToday(format.format(new Date()));
if (searchList != null) {
JSONArray jsonArray = JSONUtil.getJSONArray(searchList);
System.out.println(jsonArray.toString());
out()
.print(
"{success:true,data:" + "" + jsonArray.toString()
+ "}");
} else {
out().print("{success:true,data:{[]}}");
}
return null;
}
㈥ struts2 怎麼接收客戶端的json格式數據
Ajax
json格式:
{key:value,key1:value1....}
如果返回的數據包含多個對象:
[{key1:value1...},{key2:value2....}]
㈦ 用extjs4做tree,結合struts,spring 查詢資料庫後返回json數據,並顯示數據樹,應該怎麼做
很簡單···你struts2是哪個版本的,高於2.16的,有一個struts2-json-plugin-2.1.8.jar的插件包,放入lib後;你要做現實菜單就必須在後台創建一個tree的class,內容是這樣的
/**樹節點ID*/
private String id;
/**樹節點名稱*/
private String text;
/**圖標*/
private String cls;
/**是否葉子*/
private boolean leaf;
/**鏈接*/
private String href;
/**鏈接指向*/
private String hrefTarget;
/**是否展開*/
private boolean expandable;
/**描述信息*/
private String description;
然後將數據中的數據存入這個類的對象,再把得到的對象加入到一個java.util.List treeList中,然後在action裡面將treeList轉換成json,方法是這樣的
JSONArray jsonArray = JSONArray.fromObject(treeList);
getResponse().setCharacterEncoding("utf-8");
getResponse().getWriter().println(jsonArray.toString());
,可能說的有點馬虎,有不理解的可以再追問。