我继承了我想要弄清楚的代码。
我有一个Controller类,用于使用以下方法注册用户
@RequestMapping(method = POST, params = {USERNAME_PARAM, "!" + EMAIL_PARAM})
public ModelAndView usernameRegister(@Valid RegisterWithUsernameParameter usernameParameter, ModelMap model)
Where USERNAME_PARAM = "username" and EMAIL_PARAM = "email". I also have this method:
@RequestMapping(method = POST, params = {EMAIL_PARAM, "!" + USERNAME_PARAM})
public ModelAndView emailRegister(@Valid AuthenticateWithEmailParameter emailParameter, ModelMap model)
我的问题是,“params =”的目的是什么?我已经删除并测试了,我看不出任何差异,它仍然有效。还有什么“!”在这种情况下意味着什么?
谢谢!
答案 0 :(得分:1)
params = {}属性指定调用特定方法的其他条件。
仅当USERNAME_PARAM存在且请求中不存在EMAIL_PARAM时,才会调用usernameRegister()方法。 只有在存在EMAIL_PARAM并且请求中不存在USERNAME_PARAM时,才会调用emailRegister()方法。
答案 1 :(得分:0)
使用'params'我们可以缩小请求范围。和'!'否定表达。因此,第一个方法(userNameRegister)正在寻找带有USERNAME_PARAM而不是EMAIL_PARAM的reuqets,而第二个方法(emailRegister)正在查找EMAIL_PARAM而不是USERNAME_PARAM