表单标签

1、 checkboxlist标签

该标签可以一次性创建多个复选框,用于同时生成多个<input type="checkbox".../>的HTML标签,该标签根据list属性指定的集合来生成多个复选框。另外还有两个属性,listKey:该属性指定集合中的某个属性作为复选框的value,如果集合是Map,则可以使用key或者value来指定Map中的key或者value。listValue:该属性指定集合元素中的某个属性作为复选框的标签。

代码示例:

Person类

package org.app;

public class Person  {
    private String name;
    private int  age;
    private String person;
    
    public Person() {}  
    
    public Person(String name , String person) {
        this.name = name;
        this.person = person;
    }
    
    public String getPerson() {
        return person;
    }
    public void setPerson(String person) {
        this.person = person;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

}

PersonService类

package org.app;

public class PersonService {
    public Person[]  getPersons(){
        return new Person[]
        {
            new Person("张三","1号"),
            new Person("李四", "2号"),
            new Person("王二麻子", "3号"),
            new  Person("小五", "4号")
            
        };
    }

}
 

jsp页面

 <s:form>
	 <s:checkboxlist list="{'张三' , '李四' , ' 王二麻子' , '小五'}  " name="a" label="请选择想选的人物:" labelposition="top"/>
	 <s:checkboxlist list="#{'张三':'1' , '李四':'2', '王二麻子':'3','小五':'4' }" label="请选择想选择的编号:" labelposition="top" name="b" listKey="key" listValue="value"/>
	 
	 <s:bean name="org.app.PersonService" var="ps"/>
	 
	 <s:checkboxlist list="#ps.persons" name="b" label="请选择喜欢的人物:" labelposition="top" listKey="person" listValue="name"/>
	 </s:form>

结果:

 

2、 radio标签

该标签用法与checkboxlist标签使用方法一样,只是checkboxlist标签生成多个复选框,而radio生成的是多个单选框。

 

3、 select标签

该标签用于生成一个下拉框,该标签必须使用list属性,系统会使用list属性指定的集合来生成下拉列表框的选项。其中也有listKey和listValue属性,用法和checkboxlist一样,另外还有一个multiple属性,该属性指定是否该列表框允许多选。用法和checkboxlist一样。

 

4、 optgroup标签

该标签用于生成一个下拉列表框的选项组,因此该标签必须放在<s:select.../>标签中使用,使用该标签时与select类似,一样需要使用list、listKey和listValue等属性,使用方法类似。

 

5、 head标签

用于生成HTML页面的<head.../>部分。

 

6、 updownselect标签

类似于select标签,区别在于该标签生成的列表框可以上下移动选项,一样可以使用select中的list,listKey和listValue等属性,另外还有以下几个属性:

(1) allowMoveUp:是否显示“上移”按钮,默认true

(2) allowMoveDown:是否显示“下移”按钮,默认true

(3) allowSelectAll:是否显示“全显”按钮,默认true

(4) allowUpLabel:设置显示“上移”按钮上的文本,默认是^符号

(5) allowDownLabel:设置显示“下移”按钮上的文本,默认是v符号

(6) allowAllLabel:设置“全选”按钮上的文本,默认为“*”符号

 

7、doubleselect标签

该标签会生成一个级联表框(会生成两个下拉列表框),当选择第一个下拉表框时,第二个下拉表框会随之改变。常用属性:

(1) list:指定用于输出第一个下拉列表框中选项的集合。

(2) listKey:指定集合元素中的某个属性作为第一个下拉列表框的value。

(3) listValue:指定集合元素中的某个属性作为复选框的标签。

(4) doubleList:指定用于输出第二个下拉列表框中选项的集合

(5) doubleListKey:指定集合元素中的某个属性作为第二个下拉列表框的value。

(6) doubleListValue:指定集合元素中的某个属性作为第二个下拉列表框的标签。

(7) doubleName:指定第二个下拉列表框的name属性。

代码示例:

 <s:form action="x">
	 	<s:doubleselect doubleList="top=='张三' ?{ '姓张明三' , ' 第二个' , ' 第三个'} : { ' js:the first' ,'the second'}" list="{'张三' , '  David'}" doubleName="name" name="waihao"/>
	 </s:form>

结果如图

另外可以采用一种方式,首先定义一个Map对象,该对象的value都是集合,这样就能以Map对象的多个key创建第一个下拉列表框的列表项,而每个key对应的集合则用于创建第二个下拉列表框的列表项。

代码示例:

<s:set var="bs" value="#{'张三' : { '第一个 ' , ' 第二个 ' ,' 第三个'  } , 'Sam':{' first' , ' second' , ' third'} }"/>
	 <s:form action="x">
	 	<s:doubleselect doubleList="#bs[top]" list="#bs.keySet()" doubleName="name" name="people" label="选择人名" size="1" doubleSize="1"/>
	 </s:form>
	 

运行结果和差不多

注意:在form表单中一定要加上action!!!

 

9、 optiontransferselect标签

该标签会生成两个列表选择框,并生成系列的按钮用于控制个选项在两个下拉列表之间的移动、升降等,该标签的一系列属性在此就不详细阐述了。

 

10、 token标签

用于防止重复提交表单的标签,实现原理是在表单中增加一个隐藏域,每次加载该页面时,该隐藏域的值 都不相同,而TokenInterceptor拦截器则拦截所有用户请求,如果两次请求时该token对应隐藏域的值相同(前一次提交时token隐藏域的值保存在session),则阻止表单提交。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值