@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName}")public ModelAndView getBlah(@PathVariable String blahName, HttpServletRequest request, HttpServletResponse response) {
我遇到的問題是,如果我打的服務(wù)器路徑變量有特殊字符它就會被截斷。例如: 該會blah2010.08 但是,調(diào)用request.getRequestURI()包含了所有傳入 任何想法如何預(yù)防春季從截斷@PathVariable?@RequestMapping
RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName:.+}")
blah2010.08.19-02:25:47
成blah2010.08
的,因為它認為.19-02:25:47
是一個文件擴展名。 作為鏈接的問題描述,您可以通過聲明自己禁用此行為DefaultAnnotationHandlerMapping
豆在應(yīng)用程序上下文,并設(shè)置其useDefaultSuffixPattern
屬性為false
。這將覆蓋默認行為,并停止它騷擾你的數(shù)據(jù)。 DefaultAnnotationHandlerMapping
并設(shè)置useDefaultSuffixPattern
至false
(默認為true
)。 所以,打開你的Spring XMLmvc-config.xml
(或者不管它被稱為),并添加<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="useDefaultSuffixPattern" value="false" /></bean>
現(xiàn)在你的@PathVariable
blahName
(和所有其他,太)應(yīng)包含完整的,包括所有的點。 編輯:這里是一個鏈接到spring的api @RequestMapping(method = RequestMethod.GET, value = {Routes.BLAH_GET + "/{blahName:.+}", Routes.BLAH_GET + "/{blahName}/"})
@PathVariable("requestParam") String requestParam, HttpServletRequest request) throws Exception {
2)直接獲取的URL(在這個層面上沒有截斷)的請求request.getPathInfo() <BR>
Spring MVC的@PathVariable以點(。)是越來越截斷 @RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName}")
至@RequestMapping( method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName}/safe")
一切都會好起來, @RequestMapping
值):/path/{variable}/
這樣的映射將如下所示:RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName}/")
聯(lián)系客服