Spring AOP拦截Controller层,getWriter() has already been called for this response

Hero_Ant 2018-01-17 04:01:52
我是在Controller层进行拦截,但是有个过滤器,会对url进行拦截,然后设置一些参数,看了好多问题,好像就是BaseRest里的outJsonString里面把留给关了,然后过滤器会继续执行doFilter()方法,就在这地方报了错,怎么能在拦截器拦截后就把过滤器听了,不让他走doFilter,或者有其他什么方法解决这种问题吗?求大神指教


@Component
@Aspect
public class CxtControllerAspect {
@Autowired(required = false)
private MSchoolMapper schoolMapper;

//定义切点
@Pointcut("execution(* com.school.business.student.rest.StuSchoolStudyRest.cxt*(..))")
public void cxtService() {
}

@Before("cxtService()")
public void beforeMethod(JoinPoint joinPoint)
throws Exception {
Object[] args = joinPoint.getArgs();
HttpServletRequest request = (HttpServletRequest)args[0];
HttpServletResponse response = (HttpServletResponse)args[1];
String schoolId = (String.valueOf(request.getAttribute("schoolId")));
Map map = schoolMapper.queryCityInfoBySchoolId(schoolId);
if (map == null || "0".equals(map.get("cxtsp"))) {
BaseRest.outJsonString(response, "{\"code\":\"0\",\"data\":{},\"msg\":\"不支持!\"}");
return;
}
}
}

...全文
568 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
喜氏天狼 2018-01-18
  • 打赏
  • 举报
回复
使用responsewrapper,重写getwriter方法

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧