作者:超音速小子WESTBROOK | 来源:互联网 | 2023-01-23 13:57
1、controller
/**
* 跳转到我的上报列表页面
*/
@RequestMapping(value="/myList")
public void myList(HttpServletRequest request, HttpServletResponse response){
logBefore(logger, "进入我的上报列表页面");
ModelAndView mv = new ModelAndView();
try {
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
if(session.getAttribute(Const.SESSION_WEIXIN_USER) == null){
getUserInfoController.getUserInfo(this.getRequest());
}
WUser wuser = (WUser)session.getAttribute(Const.SESSION_WEIXIN_USER);
mv.addObject("openId", wuser.getOpenId());
mv.addObject("userpic", wuser.getHeadImgUrl());
mv.addObject("username", EmojTest.emojiRecovery(wuser.getNickname()));
Page page = new Page();
PageData pd = this.getPageData();
pd.put("openId", wuser.getOpenId());
page.setPd(pd);
page.setShowCount(100);
page.setCurrentPage(0);
//获取转发链接
Properties pro = GetProperties.getKey();
String weixinuser = pro.getProperty("weixinuser");
String appid = pro.getProperty("appid");
String tourl = pro.getProperty("reporturl");
String basePath = request.getScheme()+"://"+request.getServerName();
String infoUrl = weixinuser.replace("APPID", appid).replace("REDIRECT_URI", tourl.replace("WEB_URL", basePath));
List varList = reportService.list(page);
for(PageData mpd:varList){
if(mpd.getString("title").length()>10){
mpd.put("title",mpd.getString("title").substring(0,10)+"...");
}
if(mpd.getString("content").length()>35){
mpd.put("content",mpd.getString("content").substring(0,35)+"...");
}
mpd.put("infoUrl", infoUrl.replace("REPORT_ID", mpd.getString("id")));
}
JSONUtil.writeJSON(page.getTotalPage()+"", varList, response); //往前端输出,用于ajax处理的方法
} catch (Exception e) {
e.printStackTrace();
}
}
2、 JSONUtil
/**
* 写出JSON
* @param msg
* @param obj
* @return
*/
public static String writeJSON(String msg, Object obj, HttpServletResponse response) {
Map maps = new HashMap();
maps.put("msg", msg);
maps.put("data", obj);
String JSOnStr= JSONUtils.toJSONString(maps);
try {
response.setCharacterEncoding("UTF-8"); // 是设置从request中取得的值或从数据库中取出的值
response.setContentType("application/json;charset=UTF-8"); //是设置页面中为中文编码
response.getWriter().write(JSONStr);
response.getWriter().close();
} catch (IOException e) {
return null;
}
return JSONStr;
}
3、
public void getSub(@RequestParam String MENU_ID,HttpServletResponse response)throws Exception{
try {
List
注: (1)、write():仅支持输出字符类型数据,字符、字符数组、字符串等
(2)、print():可以将各种类型(包括Object)的数据通过默认编码转换成bytes字节形式,这些字节都通过write(int c)方法被输出
(3)、out和response.getWriter的类不一样,一个是JspWriter,另一个是java.io.PrintWriter。
(4)、执行原理不同:JspWriter相当于一个带缓存功能的printWriter,它不是直接将数据输出到页面,而是将数据刷新到response的缓冲区后再输出, response.getWriter直接输出数据(response.print()),所以(out.print)只能在其后输出。