这是当前的java(1.8)spring调用堆栈,
拦截器
preHandle(HttpServletRequest request, HttpServletResponse response) { response.sendError(403) }
web.xml
<error-page> <error-code>403</error-code> <location>/error/forbidden</location> </error-page>
错误 Controller
@RequestMapping(value="/error/forbidden") public ModelAndView forbidden () { // display fixed message "forbidden" in the web browser }
现在在拦截器中,我想发回自定义消息,
preHandle(HttpServletRequest, HttpServletResponse) {
response.sendError(403, "my msg")
}
Controller 更改为
`@RequestMapping(value="/error/forbidden")
public ModelAndView forbidden (HttpServletRequest request, HttpServletResponse response)`
问题是,当我调试 Controller 代码时,我还无法从响应对象中找到“我的消息”。
问题1:我的做法正确吗?
问题2:如果是这样,回复中的“我的消息”在哪里?如果没有,正确的方法是什么?
最佳答案
如果您想从拦截器的 preHandle 方法发送自定义消息作为响应,请尝试以下代码
response.setStatus(403);
response.getWriter().write("my msg");
关于java - 如何将消息从 HttpServletResponse.sendError(status, msg) 传递到 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59222770/