strut2的form标签


我们可以利用struts2的表单标签,做很多事情。比如收集用户的注册信息、修改用户信息等。

struts2中,界面中变量和action中变量的交换,通过名字来找映射,相同名字的会自动对应起来,前提条件是action中有该名字变量的setter和getter方法。


struts2的select标签:

通过这个标签,可以给用户提供一个下拉列表,同时也可以在显示信息的时候,初始化为用户原先设置的值。可以这样用:

<s:select key="personBean.sport" list="sports" />
在这里,我们用了key属性。struts2框架会根据这个属性,自动得出其他的属性,如label和value。如果我们用了action对应的.properties文件(message resource),则label属性的具体值会取.properties中设置的值。如果没有.properties资源文件,则会取value属性的值作为label的值。

这里的list属性,用来决定调用action中的什么方法,比如这里,表示调用action中的getSports方法。该方法的返回值,作为select控件的option values(选项值),它返回String数组List<String>。

struts2框架再根据key属性的值,来确定下拉框选中的初始值。这里是根据personBean.sport的值,来匹配list中返回的值,然后设置下拉框默认选中的值。

struts2框架会根据它的标签库,生成对应的html代码。


struts2的radio标签(单选按钮):

该标签给用户提供很多种值,但是只能选择其中的一项。该标签用法:

<s:radio key="personBean.gender" list="genders" />
同样,这里的key属性用来决定label和value的值。key和list属性的作用,和select标签该属性的作用是一致的。


struts2的select标签(基于对象的):

前面说到的select标签的用法,它的数据模型是String类型的。这里说说数据模型是Object对象类型的情况。比如有这样的需求:我要做一个下拉框,该下拉框是一个key:value的类型,如:

<option value="AZ">Arizona</option>
那么,可以这样用select的标签,如:

<s:select key="personBean.residency" list="states" listKey="stateAbbr" listValue="stateName" />
这里的key和list属性和前面提到的select标签的该属性作用一样,用来决定label和value的属性值,同时用于决定调用action的哪个方法。不同的是这里多了listKey和listValue属性,这两个属性也是用来决定调用什么方法的。

这里,先调用getStates方法,返回一个数组,该数组的元素是一个对象,该对象含有方法:getStateAbbr和getStateName。


struts2的checkbox标签(多选按钮):

该标签被struts2用来创建html中的<input type="checkbox" />标签,它有两种状态,选中和非选中。用法:

<s:checkbox key="personBean.over21" />
这里的key属性的值用来决定调用什么方法,通过方法的返回值来判断该checkbox是选中的还是非选中的。如这里,表示调用personBean对象的isOver21方法,该方法返回布尔类型的值(必须是返回布尔类型的值),如果返回true,则checkbox为选中状态,否则为非选中状态。


struts2的checkboxlist标签:

该标签是一组checkbox标签,相当于是对checkbox的一个小小的封装。你可以选中其中的一个或者多个,当然也可以一个都不选。用法:

<s:checkboxlist key="personBean.carModels" list="carModelsAvailable" />

同样,该标签的初始值,通过list属性的值来决定,比如这里,表示调用action(这里的action,为form中指定的action)中的getCarModelsAvailable方法,该方法返回字符串数组,用来初始化该标签,struts2框架会根据每一个值,创建一个对应的checkbox。

对于哪个checkbox是选中的,哪个没选中,通过key属性来决定。这里通过personBean对象的getCarModels方法的返回值来决定,它也返回一个String数组,有多少个值匹配上了,则有多少个对应的checkbox被选中。


一些基本的标签先介绍到这里,要了解更多, 请参看struts2的官网或者网络上的其他资源~




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值