第一次记录——回忆实习中项目遇到的问题

问题回忆

这一次的问题是在同队员项目整合中遇到的。我们的模块都在自己的机器上跑的好好的,只要一整合在一起就会出问题。他们的项目加载我的maven配置后,jsp页面就无法正常取值。思考了很久,都没找出原因。一度怀疑是队友用的spring和我们的版本对不上导致的。自己更换版本后,依然出现问题。后来,无意间发现,通过修改变量名大小写(改为更数据库中字段一样书写的格式)可以正常取到值。经检查,仅有我一人配置了mybatis驼峰命名属性功能,一度怀疑是队友的spring版本过低,对这项功能支持有误。由于deadline将近,没办法,自己重新修改了自己的代码,放弃驼峰,重写相关代码。

问题实质

今天,在复习jsp的el表达式的时候,突然好像发现了问题的实质所在。

  • jsp中el表达式对象属性中的值操作是通过将目标对象类中的getter和setter方法名,去掉方法名开头的"get"和"set"字符,再将方法名剩余部分首字母变小写(例如,getName()就改为name),最后通过共享域中的类对象.方法名剩余部分(如上则为xxx.name)将之取出操作,其实质是通过set和get方法实现对象属性的操作。

示例如下:

 class Bean{
 	private String name;
 	public void setName(String name){
		this.name = name;
	}
	public String getName(){
		return this.name;
	}
	public String getHaha(){
		return this.name;
	}
 }

对于Bean类,假如request域中存有其对象bean,在jsp中取出操作就可以为

${request.bean.name}//实质是通过getName()实现取值

实际上,更能体现上述操作的示例如下

${request.bean.haha}//还可以通过getHaha()实现如上一段代码相同的功能

一些感想

  1. 代码规范命名真的很重要。良好的代码风格带来的不仅仅是阅读上的便利,更有利于避免一些莫名其妙的错误,大大减少工作量。
  2. teamwork一定要注意沟通。这次事件中,其他队友是一个寝室的,他们统一了代码风格(并不适应mybatis对驼峰命名的一种代码命名风格)。最后,出问题了就是我要熬夜大改代码来适应他们,内心还是有点(极)小(其)不爽的。没办法,交流没做到位,就得拿工作量来填。

你可能感兴趣的:(让人麻痹的错误笔记)