Eclipse从后台controller传值接收值的key值的大小写问题

最近碰到一个很奇怪的情况,是一个从后台明明有传过来值,但是前台就是收不到。
后台:

	 @RequestMapping(value = "/SwitchList")
	 @ResponseBody
	 public ArrayList<NetEntity> apply_SwitchList(){
		 logger.info("获取交换机信息");
		 return NetService.getSwitchList();
	 }

前台:

	        		$.ajax({
	        			url:'/net/SwitchList',
	        			type:'POST',
	        			success:function(data){
	         				$("#RZJHJ").empty();
	        			  $("#RZJHJ").prepend("<option value=''>请选择一个交换机</option>");//添加第一个option值
	        		    for (var i = 0; i < data.length; i++) {
	        					if(data[i].ipaddr!=null&&data[i].ipaddr!=""){
	        						$("#RZJHJ").append("<option value='"+data[i].ipaddr+"'>"+data[i].ipaddr+"</option>");
	        					}
	        		  		} 
	        			}
	        		})

其中这个entity中相关部分的定义是这样的:

    private String ipaddr;
           public String getIpAddr() {
           return ipaddr;
       }
       public void setIpAddr(String ipaddr) {
           this.ipaddr = ipaddr;
       }

前台就是收不到ipaddr的值。
通过浏览器的F12查看,发现问题所在,传值的key值是ipAddr,不应该哈,我定义的变量明明是ipaddr,为什么传值的时候就变了?
可能改变key值内容的,只有一个地方,就是setIpAddr()和getIpAddr(),这两个函数。
于是我把这两个函数改成setIpaddr()和getIpaddr()。果然,传值用的key值就变成了ipaddr了。
所以,由此可见,set和get的函数名,要遵循的规则还是比较严格的。我目前碰见的有4点
1、函数变量的定义不能使用group等在sql语句中有特殊定义的字符。
2、set和get后紧跟的那个字母会自动变成小写。
3、set和get函数之后首字母变成小写后,后面组成的字符串就是传值用的key值,区分大小写。
4、因为变量的首字母会自动变成小写,因此意味着变量的首字母必须是小写。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章