1. 程式人生 > >針對maven聚合專案,出現的一些問題

針對maven聚合專案,出現的一些問題

近來在做一個專案,碰到一個問題。困擾很久,做個筆記提醒自己

問題1:列印Java類物件,即使重寫類的toString()方法,列印的還是 類物件+ @ + hashcode。何解?

解:專案為maven專案且為pom工程,對於子工程內的pojo類,重寫toString()方法,需要對子工程重新maven install方可。否則一直無解。

問題2:關於maven編譯找不到符號的問題。何解?

解:Controller層方法中引用Service層的方法,同樣由於是pom工程,各模組之間相互依賴,所以在對service層進行修改後需要對其install,然後才可以被controller的方法依賴。

問題3:在進行頁面傳遞請求引數到Controller層時,報400(bad ruquest)錯誤。何解?

分析:首先錯誤在於400,百度結果可知是請求的url有錯。

請求url為:http://localhost:8080/item/list?page=1&rows=30

而後臺controller寫法為如下:

@RequestMapping("/item/list")
	@ResponseBody
	public EUDateGurid getTbItemsByPageInfo(@PathVariable("page") Integer page,@PathVariable("rows") Integer rows){
		//System.out.println("page : " + page + " , rows : " + rows );
		EUDateGurid result = itemTestImpl.getTbItems(page, rows);
		return result;
	}

對於url:我們採用的是請求路徑+請求引數的方式;對於這種請求引數的方式應該採用@RequestParam註解解析引數;

還有另外一種url:http://localhost:8080/item/list/page=1/rows=30,這種url沒有引數,因為引數包含在請求路徑裡面,對於這種請求引數方式的url應該採用@PathVariable註解解析請求路徑獲取引數;

所以,controller層的方法無法解析傳遞過來的url,所以報錯。

解答:此處傳遞的url中,引數採用?page=1&rows=30的方式傳遞,應該採用@RequestPatam註解方式解析引數。

   當傳遞的引數採用page=1&rows=30的方式傳遞,應該採用@PathVariable註解方式解析 引數

@RequestMapping("/item/list")
	@ResponseBody
	public EUDateGurid getTbItemsByPageInfo(@RequestParam(value="page") Integer page,@RequestParam(value="rows") Integer rows){
		//System.out.println("page : " + page + " , rows : " + rows );
		EUDateGurid result = itemTestImpl.getTbItems(page, rows);
		return result;
	}
注意:此處也可以忽略@ReuqestParam,不寫註解。