noHandlerFound是Spring MVC框架中的一个异常,表示找不到对应的请求处理器(Handler)。当请求的URL与已注册的请求映射(RequestMapping)不匹配时,就会抛出该异常。
在Spring MVC中显示404时没有消息,可能是因为没有为该异常配置自定义的错误处理器(HandlerExceptionResolver)。可以通过以下步骤来解决该问题:
以下是一个示例的代码:
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver;
import org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CustomHandlerExceptionResolver extends AbstractHandlerExceptionResolver {
@Override
protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
if (ex instanceof NoHandlerFoundException) {
// 处理noHandlerFound异常
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("error404"); // 设置自定义的错误页面
return modelAndView;
}
// 其他异常交给默认的处理器处理
return super.doResolveException(request, response, handler, ex);
}
}
在Spring MVC配置文件中添加以下配置:
<mvc:annotation-driven>
<mvc:exception-resolvers>
<bean class="com.example.CustomHandlerExceptionResolver" />
</mvc:exception-resolvers>
</mvc:annotation-driven>
这样,当出现noHandlerFound异常时,就会显示自定义的错误页面或者错误消息。
注意:以上示例中的代码只是一个简单的示例,实际项目中可能需要根据具体需求进行适当的修改和扩展。
关于Spring MVC的异常处理和配置,可以参考腾讯云的产品文档:Spring MVC 异常处理
领取专属 10元无门槛券
手把手带您无忧上云