在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;
}
此时发现在硕正插件中的数据源的字段值就可以获取到返回结果了
对应的图片可以通过插件的属性设置如:
可动态的显示图片