controller層的註冊/登錄方法頭以下
註冊方法頭mvc
/** * 註冊 * @param userRegister * 註冊參數實體 * @return 用戶信息 */ @RequestMapping(value = "/register",method = RequestMethod.POST) public ResultObject register( @RequestParam("loginInfo") String loginInfo, @RequestParam("password") String password, @RequestParam("nickName") String nickName, @RequestParam("signature") String signature, @RequestParam("age") String age, @RequestParam("gender") String gender, @RequestParam("locationId") String locationId, @RequestParam(required = false, value = "userImg") MultipartFile userImg) { ResultObject resultObject = new ResultObject(); //實現部分 ...... return resultObject; }
登錄方法頭app
/** * 登錄 * @param loginInfo * 手機號碼 * @param password * 密碼 * @return 用戶信息 */ @RequestMapping(value = "/login",method = RequestMethod.POST) public ResultObject register(@RequestParam("loginInfo") String loginInfo, @RequestParam("password") String password) { ResultObject resultObject = new ResultObject(); //實現部分 ...... return resultObject; }
請求以下
很明顯,dispatcher處理的路徑是/missBang/login,這與我請求的路徑是一致的,接着尋找/login的路徑,就找到com.readygo.missBang.controller.register這個方法。可是,經過如上的註冊方法和登錄方法可知,因爲大意,將兩個方法名寫成同樣了。所以,mvc可能找到註冊的方法頭裏面去了(本身猜的)。解決方法:將登錄方法頭改爲String login()便可。 問題:不明白爲何會出現這種現象,一直認爲mvc是按照路徑查找,即方法名重了也不影響;經過這個例子,很明顯不是。望路過此貼者發表高見。ui