博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
checkbox的name与JavaBean的交互时发现的一个现象
阅读量:6587 次
发布时间:2019-06-24

本文共 1323 字,大约阅读时间需要 4 分钟。

 一个页面:

  • 算法选择
  • 加法 减法乘法 除法

提交到另一个页面,代码如下:

    
选择的算法:<%=convertor.convert(al.getAlgorithms())%>
package Algorithm;public class AlgorithmConfiguration {    private String[] algorithms;    public String[] getAlgorithms() {        return algorithms;    }    public void setAlgorithms(String[] algorithms) {        this.algorithms = algorithms;    }}

 

发现的现象:第一段代码中,如果checkbox的name是Algorithms,也就是首字母大写,并且第三段代码也改成Algorithms,重新编译发布,就无法被第二个页面获取和输出,只有小写时才可以。

下面进行其它方面的测试:

第一次测试,即发现的现象,属性的首字母大写时,即Algorithms,方法名为getAlgorithms,提交后页面无法获取,均为小写字母时,即属性名为algorithms,方法名为getAlgorithms,可以获取字符串值。

第二次测试,属性名改为algorithmS,页面上的checkbox的name随之更改,提交后可以获取字符串值。

第三次测试,属性名改为AlgorithmS,页面上的checkbox的name随之更改,提交后获取不到字符串值。

第四次测试,属性名改为aLGORITHMS,页面上的checkbox的name随之更改,提交后可以获取字符串值。与此同时,发现属性名改为aLGORITHMS时,Eclipse环境下,属性上右键,自动生成Getter和Setter时,get后面的字母没有自动变为大写,即,此时的get方法是getaLGORITHMS()这样的,而前面的都会把首字母自动变为大写。

第五次测试,手动把第四次测试中的getaLGORITHMS()的方法改为getALGORITHMS()后,获取不到字符串值。

第六次测试,属性名改为Algorithms,同时方法名改为getalgorithms,提交后获取不到字符串值。

第七次测试,属性名改为algorithms,同时方法名改为getalgorithms,提交后可以获取字符串值。

第八次测试,属性名改为ALGORITHMS,同时方法名改为getALGORITHMS,提交后可以获取字符串值。

 

这是什么规律?目前我没看出来。

似乎,属性的首字母小写,都可以获取值。如果首字母大写,那么必须要全部大写,才能获取值。

以前看过一些习惯于用java的朋友写的代码,特别喜欢用全程小写,不知道是不是与这个现象有关。而我习惯于驼峰命名法。

这是为什么?也许Java源码可以一窥端倪。

 

转载地址:http://ajhno.baihongyu.com/

你可能感兴趣的文章
开发一个React + Electron应用
查看>>
一款超级实用的SuperLayout
查看>>
Picasso源码阅读笔记三
查看>>
ES6入门之let、cont
查看>>
说下自己看源码的一点经验(Python Web 相关)
查看>>
优雅地减少redux请求样板代码
查看>>
Iterables和迭代器
查看>>
ElementUI文档中忽略的内容补充
查看>>
node 进程管理
查看>>
Swift基础语法学习-4.Bool类型
查看>>
浅谈混合应用的演进
查看>>
死磕Android_App 启动过程(含 Activity 启动过程)
查看>>
inotify实时同步工具理论和实战
查看>>
SQL SERVER 2008数据库管理与维护总结
查看>>
nginx web服务理论与实战
查看>>
golang RWMutex读写互斥锁源码分析
查看>>
Tinker + Bugly + Jenkins 爬坑之路
查看>>
如何快速入手 Shell 脚本编程
查看>>
getElement四种方法返回的不同
查看>>
SpringBoot使用@Asyn注解注意事项
查看>>