一个页面:

<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源码可以一窥端倪。

checkbox的name与JavaBean的交互时发现的一个现象的更多相关文章

  1. Java 读数据库字段时发现的一个现象

    早上发现有一个网名叫“帅!是不需要理由”的一个人,在后台只能看到“帅!是不需要理”,“由”字就是不显示出来. 经过分析发现,在Access数据库中,name这个字段的长度是15,因为我知道Access ...

  2. iOS JavaScriptCore与H5交互时出现异常提示

    在利用JavaScriptCore与H5交互时出现异常提示: This application is modifying the autolayout engine from a background ...

  3. js做全选,用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false

    用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false,当所有checkbox都被选中时,全选按钮也被选中. 详解: 有两种 ...

  4. ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据的传递

    前言 最近公司项目进行架构调整,由原来的三层架构改进升级到微服务架构(准确的说是服务化,还没完全做到微的程度,颗粒度没那么细),遵循RESTFull规范,使前后端完全分离,实现大前端思想.由于是初次尝 ...

  5. JavaBean+Servlet 开发时,JavaBean 编写问题

    在开发 JavaBean 时,遇见一个问题: *****  表单字段为空,提交时出现 nullPointerException 异常:  表单字段不为空,提交正常. 使用 JavaBean ,JSP页 ...

  6. ASP.Net中关于WebAPI与Ajax进行跨域数据交互时Cookies数据的传递

    本文主要介绍了ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据传递的相关知识.具有很好的参考价值.下面跟着小编一起来看下吧 前言 最近公司项目进行架构调整,由原来的三层架构改 ...

  7. 使用Unity NGUI-InputField组件输入时发现显示为白色就是看不到字体

    今天在接入android支付宝 SDK时,打包运行时,发现使用Unity NGUI-InputField组件输入时发现显示为白色就是看不到字体,查找一下发现是与android交互存在的问题, 只需在A ...

  8. 解决CSharpGL使用CGCompiler时发现的几个问题

    解决CSharpGL使用CGCompiler时发现的几个问题 为了获取CSharpShadingLanguage的token流,我设计了这样一个文法: <Expression> ::= & ...

  9. 今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在Win中见过的/r回车符号。由于编辑软件的编码问题,某些IDE的编辑器在编辑完文件之后会自动加上这个^M符号。看起来对我们的源代码没有任何影响,其实并不然,当我们把源代码文件Check In到svn之类

    今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在W ...

随机推荐

  1. 巧用JS中的join方法操作字符串

    1.将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符 /** *把数组转换成特定符号分割的字符串 */ function arrayToString(arr,s ...

  2. SharePoint Error occurred in deployment step 'Recycle IIS Application Pool': 0x80070005:拒绝访问

    错误出现的前提:多个用户在一台机器上做开发,使用非系统管理员账号时会出现,因为一般创建网站集时指定管理员为系统管理员: 使用 Visual Studio 2010 部署时报错:Error occurr ...

  3. svn merge和branch分析

    [转载] 使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响,最主要的原因是,自己对分支的 ...

  4. 类似股软(大智慧)之键盘精灵的 vc2008--UNICODE 环境实现

    键盘精灵是指,当按下键盘上任意一个数字.字母或符号的时候,都会弹出“键盘精灵”,其类似于股票软件(如大智慧)中的.可以在这里面输入中英文和数字搜索您想要的东西.可以通过输入代码.名称或名称的汉语拼音首 ...

  5. 通过phoenix查看hbase中表的结构

    需求描述: 今天一个同事,问如何在phoenix中查询hbase中表的结构,在此记录下. 操作过程: 1.通过phoenix客户端连接到hbase数据库 [aiprd@host---- bin]$ . ...

  6. UVA 1203 - Argus(优先队列)

    UVA 1203 - Argus 题目链接 题意:给定一些注冊命令.表示每隔时间t,运行一次编号num的指令.注冊命令结束后.给定k.输出前k个运行顺序 思路:用优先队列去搞,任务时间作为优先级.每次 ...

  7. JavaScript实现禁用键盘和鼠标的点击事件

    编写自己定义的JavaScript函数maskingKeyboard()和rightKey(); maskingKeyboard():禁用键盘 rightKey():禁用鼠标右键 <script ...

  8. 打地鼠游戏iOS源代码项目

    打地鼠游戏源代码,游戏是一款多关卡基于cocos2d的iPad打地鼠游戏源代码.这也是一款高质量的打地鼠游戏源代码.能够拥有逐步上升的关卡的设置,大家能够在关卡时设置一些商业化的模式来盈利的,很完美的 ...

  9. 超全面的JavaWeb笔记day10<Response&Request&路径&编码>

    1.Response 2.Request 3.路径 4.编码 请求响应流程图 response 1.response概述 response是Servlet.service方法的一个参数,类型为java ...

  10. JAVA实现随机无重复数字功能

    本文给大家介绍如何在JAVA中实现随机无重复数字的功能.如果您是初学者的话,有必要看一看这篇文章,因为这个功能一般会在面试中遇到.包括我本人在招聘人员的时候也喜欢拿这个问题去问别人,主要看一看考虑问题 ...