Integer visitorCount = (Integer) session.getAttribute("visitorCount")能否换一种写法达到同样的目的
时间: 2023-12-03 14:43:39 浏览: 23
可以使用以下写法达到相同的目的:
```
int visitorCount = (int) session.getAttribute("visitorCount");
```
这种写法将返回一个基本类型的 int 值,而不是一个包装类型的 Integer 值。这种写法在性能上稍微快一些,因为它避免了自动装箱和拆箱的开销。但请注意,如果 session 中没有名为 "visitorCount" 的属性,这种写法将抛出 NullPointerException 异常。
相关问题
@RequestMapping("dataSummaryViews") public DataGridResult dataSummaryViews(HttpSession session, @JsonFormat JxMjQjcsVO vo,String flag,Integer page,Integer limit){ try { Integer jsbh = (Integer) session.getAttribute(UserConstants.SESSION_JSBH); String mjbh = (String) session.getAttribute(UserConstants.SESSION_MJBH); String mjxm = (String) session.getAttribute(UserConstants.SESSION_MJXM); jxmjQjcsService.checkLimitAndPage(vo.getPage(), vo.getLimit()); List<Map> resultLists = jxmjQjcsService.dataSummaryViews(vo, jsbh, mjbh, mjxm, flag); PageInfo<Map> pageInfo = new PageInfo<>(resultLists); return DataGridResult.ok(pageInfo.getTotal(), pageInfo.getList()); } catch (Exception e) { log.error(e.getMessage(), e); return DataGridResult.errorWithMsg(e.getMessage()); } }分页不起作用
根据你提供的代码,我发现你已经在方法参数中添加了page和limit参数,并使用@RequestParam注解来获取这两个参数的值,但是你在调用jxmjQjcsService.checkLimitAndPage方法时,使用了vo.getPage()和vo.getLimit()来获取page和limit的值,这很可能导致分页无法正常工作。
为了解决这个问题,你需要修改jxmjQjcsService.checkLimitAndPage方法,使其接收page和limit作为参数,并进行校验。然后在调用dataSummaryViews方法时,将从@RequestParam注解中获取到的page和limit参数传递给它,例如:
```
public DataGridResult dataSummaryViews(HttpSession session, @JsonFormat JxMjQjcsVO vo, String flag,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "15") Integer limit) {
try {
Integer jsbh = (Integer) session.getAttribute(UserConstants.SESSION_JSBH);
String mjbh = (String) session.getAttribute(UserConstants.SESSION_MJBH);
String mjxm = (String) session.getAttribute(UserConstants.SESSION_MJXM);
jxmjQjcsService.checkLimitAndPage(page, limit);
List<Map> resultLists = jxmjQjcsService.dataSummaryViews(vo, jsbh, mjbh, mjxm, flag, page, limit);
PageInfo<Map> pageInfo = new PageInfo<>(resultLists);
return DataGridResult.ok(pageInfo.getTotal(), pageInfo.getList());
} catch (Exception e) {
log.error(e.getMessage(), e);
return DataGridResult.errorWithMsg(e.getMessage());
}
}
```
这样就可以通过@RequestParam注解获取到page和limit参数,并将它们传递给jxmjQjcsService.dataSummaryViews方法,从而让分页正常工作。
public String goToOrderConfirmPageByCart(Map<String, Object> map, HttpSession session, HttpServletRequest request, @RequestParam(required = false) Integer[] order_item_list) throws UnsupportedEncodingException { User user = (User) session.getAttribute("USER_SESSION"); Integer userId = (Integer) session.getAttribute("USER_ID"); map.put("user", user);
这是一个Java方法,主要是用于展示订单确认页面。它接收四个参数:一个Map类型的参数,一个HttpSession类型的参数,一个HttpServletRequest类型的参数和一个@RequestParam类型的参数。
其中,Map参数用于存储数据,HttpSession参数用于获取当前用户的会话信息,HttpServletRequest参数用于获取请求信息,RequestParam参数用于获取请求中的order_item_list参数。
在方法中,首先通过session获取当前用户的信息,然后将用户信息存储到map中,最终返回一个String类型的值,表示跳转到订单确认页面的路径。