<definition name="base" template="/WEB-INF/layouts/base.jsp">
<put-attribute name="content" value="" type="string" />
</definition>
<definition name="notfound" extends="base" >
<put-attribute name="content" value="/WEB-INF/views/notfound.jsp"type="template" />
</definition>
Казалось бы, вроде обычный jsp, поэтому мог бы прокатить скриптлет прямо в /WEB-INF/views/notfound.jsp:
<%response.setStatus(response.SC_NOT_FOUND); %>
Ан нет. HttpServletResponse уже сформирован, setStatus в пролете.
Вариант <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true" %> тоже не пройдет - получите эксепшен.
В Spring я перекладываю эту работу на контроллер. Как-то так:
@RequestMapping(value="/qwe/{asd}",method=RequestMethod.GET)
public ModelAndView getQwe(@PathVariable("asd") String asd,
HttpServletResponse response) throws Exception {
ModelAndView mod=new ModelAndView("notfound");
response.setStatus(response.SC_NOT_FOUND);
return mod;
}
Комментариев нет:
Отправить комментарий