针对maven聚合项目,出现的一些问题

版权声明:转载注明出处 https://blog.csdn.net/nobody_1/article/details/76566864

近来在做一个项目,碰到一个问题。困扰很久,做个笔记提醒自己

问题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,不写注解。

猜你喜欢

转载自blog.csdn.net/nobody_1/article/details/76566864