今天做一个项目遇到了这个问题,然后一直报signup对象为空。一直找不到原因,后来,让师傅给了新的解决办法
解决 之前(参数中signup报空):
jsp:
<a class="btn btn-warning" href="${ctx}/rbcase/signup/showlist?activityId=${activity.id}">查看报名</a>
controller:
@RequiresPermissions("rbcase:signup:view")
@RequestMapping(value = {"list", ""})
public String list(Long id,Signup signup, HttpServletRequest request, HttpServletResponse response, Model model) {
System.out.println("getActivityId:"+id);
User user = UserUtils.getUser();
if (!user.isAdmin()){
signup.setUserId(user.getId());
}
/*if(id>0 && id!=null){
signup.setActivityId(id);
}*/
Page<Signup> page = signupService.find(new Page<Signup>(request, response), signup);
model.addAttribute("page", page);
return "modules/rbcase/signupList";
}
解决之后的:
jsp:(可直接传属性值)
<a class="btn btn-warning" href="${ctx}/rbcase/signup/showlist?activityId=${activity.id}">查看报名</a>
controller:
@RequiresPermissions("rbcase:signup:view")
@RequestMapping(value = "showlist")
public String showlist(Signup signup,HttpServletRequest request, HttpServletResponse response, Model model) {
if( signup.getActivityId()>0 && signup.getActivityId()!=null){
Page<Signup> page = signupService.findByActivityId(new Page<Signup>(request, response), signup.getActivityId());
model.addAttribute("page", page);
}
return "modules/rbcase/signupList";
}
service:
public Page<Signup> findByActivityId(Page<Signup> page,Long id) {
DetachedCriteria dc = signupDao.createDetachedCriteria();
if (id!=null && id>0){
dc.add(Restrictions.eq("activityId", id));
}
dc.addOrder(Order.desc("id"));
return signupDao.find(page, dc);
}