3

我的控制器类是

@RequestMapping(method = RequestMethod.POST, value = "/auditregistry/collectionentry/cid/{cid}/collid/{collid}/colldt/{collectiondate}/amount/{amt}")

public ModelAndView saveManualCollection(@PathVariable("cid") Integer custId, @PathVariable("collid") Integer collRtId, @PathVariable("collectiondate") String dt, **@PathVariable("amt") String amount**) throws Exception 
{
    debug("amount recieving=="+amount);

我传递给 url 的值是

/auditregistry/collectionentry/cid/9991/collid/10/colldt/20120726/amount/ $14.55

当我尝试将金额值打印为“$14”而不是“$14.55”时,我应该如何打印实际值“$14.55”

任何帮助都非常感谢

4

2 回答 2

6

将您的 RequestMapping 更改为以下

@RequestMapping(method = RequestMethod.POST, value = "/auditregistry/collectionentry/cid/{cid}/collid/{collid}/colldt/{collectiondate}/amount/{amt:.*}")

此处更改为您的 RequestMapping 中的{amt:.*} insted of {amt}

于 2012-09-24T11:43:02.337 回答
5

这是因为默认情况下 Spring MVC 会剥离之后的所有内容.并将其视为文件扩展名(例如/file.txt)。这很容易解决。使用 Spring MVC 3.1 和 Java 配置:

@Configuration
class Cfg extends WebMvcConfigurationSupport {

    @Override
    public RequestMappingHandlerMapping requestMappingHandlerMapping() {
        final RequestMappingHandlerMapping mapping = super.requestMappingHandlerMapping();
        mapping.setUseSuffixPatternMatch(false);
        return mapping;
    }

}

注意调用:RequestMappingHandlerMapping.setUseSuffixPatternMatch()

于 2012-09-24T11:42:28.390 回答