在strtus2框架下使用碩正插件,在創建數據源的時候的返回數據的接收需要進行處理;
function printV(ids){
var names = document.getElementsByName(ids);
var len = names.length;
if (len > 0) {
var i = 0;
for (i = 0; i < len; i++) {
if (names[i].checked) {
var id =names[i].value;
AF.func("Build", "<%=ctp%>/js/tzddy.xml");//模板文件
AF.func("SetSource", "ds1 \r\n"+"<%=request.getContextPath()%>/lxgl/lsgd!showMbListView.action?id="+id);//模板文件
AF.func('Calc', '');
AF.func("print", "0"); //1-允許彈出系統打印對話框, 0-不彈出對話框直接打印
// art.dialog.alert("提示","打印成功!","info");
}
}
art.dialog.alert("提示","打印成功!共打印"+len+"份","info");
}else{
art.dialog.alert("提示","打印記錄爲空!","info");
}
}
在其他框架下使用@responseBody 可以直接就返回json格式的數據,但是在strtus2下並不能直接返回,而是大多情況下是返回字符串,然後去找對應的頁面;
經過查資料發現,要返回數據可以通過流直接寫出去--
//彈出一個類別的模板列表
public String showMbListView(){
Map<String, Object> map=new HashMap<>();
if (!StringUtils.isEmpty(id)) {
System.out.println(id);
List<Map<String ,Object >> rymdxxList=rymdxxManager.findByXh(id);
//獲取單個學生的信息 院系專業班級 姓名
if (rymdxxList.size()>0&&rymdxxList!=null) {
map.put("rymdxx", rymdxxList.get(0));
}
}
return ajax(map);
}
/**
* 客戶端輸出json字符
* @param string
*/
public String ajax(Map out){
PrintWriter writer = null;
try {
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/json;charset=utf-8");
writer = response.getWriter();
response.setDateHeader("Expires", 0);
JSONObject json = new JSONObject(out);
// System.out.println(json.toString());
writer.write(json.toString());
writer.flush();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(writer!=null){
writer.close();
}
}
return null;
}
此時發現在碩正插件中的數據源的字段值就不可以獲取到返回結果了
對應的圖片可以通過插件的屬性設置如:
可動態的顯示圖片