定义一个URL模式以不命中Spring控制器方法
我使用的是SpringMVC3.2 如果用户点击/fr,我需要显示页面的本地化版本,以便在内部将其视为?language=fr\u fr并显示法语翻译 但目前spring将/fr作为控制器方法定义一个URL模式以不命中Spring控制器方法,spring,spring-mvc,Spring,Spring Mvc,我使用的是SpringMVC3.2 如果用户点击/fr,我需要显示页面的本地化版本,以便在内部将其视为?language=fr\u fr并显示法语翻译 但目前spring将/fr作为控制器方法 如何确保我在“/”之后定义的两个字符,spring将其视为语言,而不是控制器方法的请求。尝试以下方法: @Controller @RequestMapping(value = "/action/{language}") public class TesteController { @Reques
如何确保我在“/”之后定义的两个字符,spring将其视为语言,而不是控制器方法的请求。尝试以下方法:
@Controller
@RequestMapping(value = "/action/{language}")
public class TesteController {
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody String doSomething(@PathVariable String language) {
if (language.equals("fr")) {
// do something
}
}
}
因此,您可以键入/action/fr、/action/en等。如何确保{language}只能包含两个字符?我不希望/action/postme转到此控制器方法您需要验证变量值并向用户返回错误。您不能限制字符。您的意思是不能有任何用于2个字符的正则表达式?@PathVariable所做的只是解析URL。它将替换URL上通知的值定义的模式。您可以创建一个自定义批注,按所需的模式进行检查,并拒绝对该方法的访问。请检查此链接: