zoukankan      html  css  js  c++  java
  • checkbox的name与JavaBean的交互时发现的一个现象

     一个页面:

    <form action="reg.jsp" method="post">            
    <ul>
    <li>算法选择</li>
    <li><input type="checkbox" name="algorithms" value="plus">加法 
    <input type="checkbox" name="algorithms" value="minus">减法
    <input type="checkbox" name="algorithms" value="multi">乘法
             <input type="checkbox" name="algorithms" value="divide">除法
    </li>
    </ul>
    </form>
    
    

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

    <body>
        <jsp:useBean id="convertor" class="sabreTest.Convertor"></jsp:useBean>
        <jsp:useBean id="al" class="Algorithm.AlgorithmConfiguration"></jsp:useBean>
        
        <jsp:setProperty property="*" name="al"/>
    
        选择的算法:<%=convertor.convert(al.getAlgorithms())%>
    
    </body>
    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源码可以一窥端倪。

  • 相关阅读:
    ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录
    py-faster-rcnn(running the demo): ubuntu14.04+caffe+cuda7.5+cudnn5.1.3+python2.7环境搭建记录
    spring配置hibernate的sessionFactory
    Java编程题
    java编写encode方法和decode方法,机试题
    港交所OMD-C对接笔记
    基于百词斩和扇贝单词的背单词APP软件测试
    C++实现对文件中各单词词频的统计及其代码优化
    C++如何获取当前路径下所有文件的文件名
    【信号与线性系统】为什么求解零输入响应时转移算子H(p)不能约分,但计算单位冲激响应时却可以约分?
  • 原文地址:https://www.cnblogs.com/Sabre/p/7544659.html
Copyright © 2011-2022 走看看