HTML的表单元素与Struts的FormBean关联实验(以Struts的helloapp为例)

原创 2006年06月14日 13:39:00

关键字 Struts FormBean 关联 大小写


    最近在学习Struts编程,刚接触就遇到了一些困惑,这些对来高手来说可能不值一提,而且对高

手来说通过查看Struts源代码直接就能找到答案。但对于新手来说也许实验是最直接的方法。

    我是以网上广泛传播的helloapp为例子做的实验。
    源代码请链接http://dev.csdn.net/article/47/47301.shtm
    或http://blog.csdn.net/chenxiaohong3905/archive/2004/11/02/163738.aspx

    环境:Struts 1.2+Tomcat 5.5.17+JDK 1.5 + Win2003

    提交的大概过程是这样的:HTML的Form(客户提交的表单)-->HelloForm-->HelloAction...

   
    在HTML的Form与HelloForm的如何关联让我有些困惑。


    将HTML的Form数据提交给HelloForm有两种方式,一种是在JSP中应用Struts标签,这是helloapp

例子所采用的形式;另一种是直接在JSP中直接用标准的HTML标签编写Form。
    第一种形式是通过setUserName和getUserName与JSP的Struts标签实现关联的,这种形式不做讨

论。
    另一种形式是通过JSP的标准的HTML标签与FormBean建立联系。

    
     <form name="HelloForm" method="post" action="/helloapp/HelloWorld.do">
       Please enter a UserName to say hello to :
       <input type="text" name="userName" maxlength="16" size="16"><br>
       <input type="submit" name="submit" value="Submit">
       <input type="reset" value="Reset">
     </form>
    有些论坛上说直接用标准的HTML标签提交的数据FormBean无法获得,但实验结果是可行的。
  
    通过多次实验发现<input type="text" name="userName" maxlength="16" size="16">只与

FormBean中的setUserName建立联系。
与其它Form的属性或方法都没有关系。比如getUserName也可以写成其它形式,如getAbc,但Action

也要进行相应修改;HelloForm中的私有属性也可以更成其它的名称,不一定使用“private String

userName = null;”形式,可以使用“private String aaBB = null;”,不一定非要与 <input

type="text" name="userName" maxlength="16" size="16">对应。

  由此说明在Struts结构中,name="userName"只与setUserName对应。但仔细观察,发现"U"的大小

写却不同。经过多次实验发现,name的属性第一个字母必须是大写的,如改成

name="UserName",setUserName则不行。问了一下QQ群的朋友说,告诉我说以前的版本Struts是如果

你在HelloForm里写成setUserName后,会先接受name="userName",没有的话再接受name="UserName"

。name="userName"是标准写法,至于为什么我的实验只能使用name="userName",朋友解释说可能是

新版本更加严格的原因吧。
  
   以下是我的实验结果:

   setUserName
   name="userName"
   可行

   setUserName
   name="UserName"
   不可行

   setuserName
   name="UserName"
   不可行

   setuserName
   name="userName"
   可行

   setSandyPig
   name="SandyPig"
   不可行

   setSandyPig
   name="sandyPig"
   可行
  
   由此可见,name的值的第一个字母必须是小写。

但有这样一种特殊情况就是:
 
   setYYYY
   name="YYYY"
   可行

就是全部都是大写的时候也是可以的。这一点我还是懂不明白,是不是Java对变性,参数和方法的写

法有一套硬性的规定,这我就不知道了,哪位知道告诉我。或者哪位高手能看一下Struts源代码,指

出原因。

  

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Struts2获取HTML表单元素与Struts表单标签的区别使用-基础篇

序: 页面和后台之间的数据交互很多时候是依赖表单来完成的,通常使用struts标签相对而言方便点,但效率上很明显比用纯粹的html表单元素要差很多。 虽然比较基础,但是还是在这里对两者结合后台的使...

html5表单元素及验证

  • 2016-10-23 00:24
  • 1.35MB
  • 下载

HTML5的表单元素

  • 2016-04-13 10:07
  • 1.10MB
  • 下载

千呼万唤 HTML 5 (7) - 表单元素

原文地址:http://www.cnblogs.com/webabcd/archive/2012/02/08/2342275.html 作者:webabcd 介绍 HTML ...

详解HTML中的表单元素

代码详讲: 用户注册 用名: 密码: 性别:     男     女     爱好:     羽毛球     棒球     喜欢车型...

HTML中的表单元素

直接给个例子吧,这样比较直观: 单行文本框: 不能编辑的文本框:<input id="textfield1" name="textfield1" type="text" re

html中的表单元素总结

form、input、button——制作基本的表单; form的action属性——制定表单数据发送到的url; form的enctype属性——指定传送给服务器的表单数据采用的编码方式; form...

HTML5初探——新增的表单元素和属性

HTML5初探——新增的表单元素和属性

html表单元素非空、正则校验

html> html lang="en"> head> meta charset="UTF-8"> title>title> style> fieldset{ ...

HTML一些常用的表单元素

HTML一些常用的表单元素 普通文本框 密码输入框 复选框 单选框,属性name设置相同
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)