2011-03-11 60 views
2

我正在研究弹簧web服务。我创建了一个异常解析器来处理任何异常,以便以适当的格式将异常发送到客户端。弹簧控制器中的类型不匹配@RequestParam

服务层正在捕获异常并正在发送自定义消息。
问题是,如果控制器中的请求参数是数字类型,并且用户发送字符串,则发送异常的拒绝消息。但我想发送一个自定义的错误。任何人都可以请建议我应该怎么做。

+1

在这里看到正确答案 http://stackoverflow.com/questions/2287381/spring-mvc-and-requestparam-validation – Janning 2011-08-29 15:19:06

回答

0

我认为你需要像这样

@RequestMapping(value = "/happy}", method = RequestMethod.POST) 
public String happy(@RequestParam(value = "somevalue") int number) { 
    // implement your flow 
    return null; 
} 

@RequestMapping(value = "/happy}", method = RequestMethod.POST) 
public String unhappy(@RequestParam(value = "somevalue") String string) { 
    // send a custom error message to the user to use a number instead of a String 
    return null; 
} 
+0

确定我会尝试, ..我们可以使用@Exceptionhandler这个吗? – parbi 2011-03-14 06:19:05

+0

我试过了,没有工作,得到以下异常: java.lang.IllegalStateException:找到了不明确的映射。无法映射'myControllerClass'bean方法 public com.company.mvc.views.MyXmlView com.company.mvc.controllers.MyControllerClass.unhappy(java.lang.String) to {[/ path/to/web/controller],方法= [GET],params = [],headers = [],consumes = [],产生= [],custom = []}:已有'myControllerClass'bean方法 public com。 company.mvc.views.MyXmlView com.company.mvc.controllers.MyControllerClass.happy(java.lang.String,java.lang.Integer)映射。 – barryred 2013-03-06 11:24:30