将扩展程序添加到网址

时间:2015-09-24 06:55:15

标签: spring spring-mvc http-status-code-404 url-mapping

我需要一些关于URL映射的帮助,在我的代码中,当我去:

http://localhost:8080/register.asdf
http://localhost:8080/register.asddsdsd etc.

它总是返回http://localhost:8080/register,但我想让它 404 NOT FOUND
我该如何解决这个问题?

public class WebInitializer implements WebApplicationInitializer {

@Override
public void onStartup(ServletContext servletContext) throws ServletException {    
    AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();  
    ctx.register(Config.class);  
    ctx.setServletContext(servletContext);    
    Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));  
    servlet.addMapping("/");  
    servlet.setLoadOnStartup(1);
}

}

@Controller
public class UserController {

@RequestMapping(path = "/register", method = RequestMethod.GET)
public String registerGet(Model model) {

    return "register";
}

编辑:我在Config.java中添加了以下代码并解决了感谢。

@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
    configurer.setUseSuffixPatternMatch(false);
}

2 个答案:

答案 0 :(得分:0)

您可以限制client_secret@RequestMapping的映射范围。 更改RequestMapping:

servlet.mapping

或者servlet.mapping:

@RequestMapping(path = "/register.htm", method = RequestMethod.GET)//for example  

修改 如果您使用的是Spring 4.X,可以使用:

servlet.addMapping("*.htm");  

答案 1 :(得分:0)

docs使用以下配置来限制不需要的扩展程序

<mvc:annotation-driven>
    <mvc:path-matching suffix-pattern="false" />
</mvc:annotation-driven>