浏览器将所有的东西都按字符串提交。你可以使用JavaScript校验来强迫用户在某个域里面
只能输入数字,或者使用固定的数据格式,但是这也仅是镜花水月。所有的东西仍然以字符
串的方式提交给服务器—而不象准备传递给Java方法的二进制对象。
重要的是要记住,这是浏览器和HTML 工作的方式。
Web 应用无法控制这些。Struts 之类的框架的存在是使我们必须做的事情做的最好。Struts
对HTTP 数据输入难题的解决方法是使用ActionForm。
在象Swing 之类的环境中,数据输入控件有一个内建的文本缓冲区,可以校验所输入的字
符。当用户离开控件,缓冲区可以转换为二进制类型,可以传递给业务层。
不幸的是,HTTP/HTML 平台不提供可以缓冲、校验和输入转换的组件。所以Struts 框架
提供了一个ActionForm (org.apache.struts.action.ActionForm)类来沟通web
浏览器和业务对象。ActionForm 提供了想要的缓冲/校验/转换机制,我们可以用来保证
用户输入它们想要输入的东西。
当 HTML 表单提交时,名-值对被Struts 控制器获取,并应用到ActionForm。ActionForm
是一个 JavaBean,有属性和HTML 表单控件中的域相对应。 Struts 比较ActionForm 属
性的名称和输入名-值对的名称。当匹配时,控制器设置属性值为相关的输入域的值。其它
的属性会被忽略。错过的属性会保持它们的缺省值(通常是null 或者false)。
只能输入数字,或者使用固定的数据格式,但是这也仅是镜花水月。所有的东西仍然以字符
串的方式提交给服务器—而不象准备传递给Java方法的二进制对象。
重要的是要记住,这是浏览器和HTML 工作的方式。
Web 应用无法控制这些。Struts 之类的框架的存在是使我们必须做的事情做的最好。Struts
对HTTP 数据输入难题的解决方法是使用ActionForm。
在象Swing 之类的环境中,数据输入控件有一个内建的文本缓冲区,可以校验所输入的字
符。当用户离开控件,缓冲区可以转换为二进制类型,可以传递给业务层。
不幸的是,HTTP/HTML 平台不提供可以缓冲、校验和输入转换的组件。所以Struts 框架
提供了一个ActionForm (org.apache.struts.action.ActionForm)类来沟通web
浏览器和业务对象。ActionForm 提供了想要的缓冲/校验/转换机制,我们可以用来保证
用户输入它们想要输入的东西。
当 HTML 表单提交时,名-值对被Struts 控制器获取,并应用到ActionForm。ActionForm
是一个 JavaBean,有属性和HTML 表单控件中的域相对应。 Struts 比较ActionForm 属
性的名称和输入名-值对的名称。当匹配时,控制器设置属性值为相关的输入域的值。其它
的属性会被忽略。错过的属性会保持它们的缺省值(通常是null 或者false)。