Struts2表单标签
表单标签在HTML文档里被长线为一个表单元素
利用表单标签元素的优点
--表单回显
--对页面进行布局和排版
标签的属性可以被赋值为一个静态的值 ,或一个 OGNL 表达式
如果在赋值时使用了一个OGNL表达式并把它用%{} 括起来,这个表达式将会求值
<!--
表单标签初体验,
使用和html的form标签表现差不多 ,struts2标签会生成一个table会自动的进行排版
可以对表单提交的值进行回显!:从栈顶对象开始匹配属性并把匹配的实行值复制到对应的标签的value中,
若栈顶对象没有相应的属性,则依次向下找相应的属性
-->
<s:form action="save" >
<s:hidden name="userId"></s:hidden>
<s:textfield name="userName" label="UserName"></s:textfield>
<s:password name="password" label="Password"></s:password>
<s:textarea name="desc" label="Desc"></s:textarea>
<s:submit></s:submit>
</s:form>
S:checkbox标签,当某个呈现为一个HTML复选框元素,该复选框元素通常用于提交一个布尔值,
当包含着一个复选框的表单被提交时,如果某个复选框被选中了,它的值将为true,这个复选框在HTTP请求里增加一个请求参数,但如果该复选框未被选中,在请求中就不会增加一个请求参数,
Checkbox标签解决了这个局限性,它才去的办法是为单个复选框元素创建一个配对的不可见的字段
list , listKey , listValue 这3个属性对radio单选,select 下拉选,checkboxList等标签非常重要
<body>
<%
List<City> cities = new ArrayList<City>();
cities.add(new City(1001,"AA"));
cities.add(new City(1002,"BB"));
cities.add(new City(1003,"CC"));
cities.add(new City(1004,"DD"));
request.setAttribute("cities",cities);
%>
<s:debug></s:debug>
<!--
表单标签初体验,
使用和html的form标签表现差不多 ,struts2标签会生成一个table会自动的进行排版
可以对表单提交的值进行回显!:从栈顶对象开始匹配属性并把匹配的实行值复制到对应的标签的value中,
若栈顶对象没有相应的属性,则依次向下找相应的属性
-->
<s:form action="save" >
<s:hidden name="userId"></s:hidden>
<s:textfield name="userName" label="UserName"></s:textfield>
<s:password name="password" label="Password"></s:password>
<s:textarea name="desc" label="Desc"></s:textarea>
<s:checkbox name="married" label="Married"></s:checkbox>
<s:radio name="gender" list="#{'1':'Male','0':'Female'}" label="Gender"></s:radio>
<!--
list的属性值可以是一个数组(List) 也可以使一个Map类型的对象
服务器端需要采用集合类型以保证正常的回显
-->
<s:checkboxlist name="city" list="#request.cities"
listKey="cityId" listValue="cityName"
label="City"></s:checkboxlist>
<!-- 在这个下拉选中s:select标签中的list属性可以为List类型也可以为Map类型 -->
<s:select list="{11,12,13,14,15,16,17,18,19,20}" headerKey="" headerValue="请选择"
name="age" label="Age">
<!--
s:optgroup可以用作s:select的子标签来显示更多的下拉框
注意:必须有键值对 ,而不能使用一个集合,让其值即作为键,又作为值
可以使用简单的Map方式,
也可以用一个List集合(当中放有key 和value属性)用listKey 和listValue
来指定键值对 :就像上面举的s:checkboxlist这个标签一样
如果不指定键值对的话没有办法显示 ,会出错
-->
<s:optgroup label="21-30" list="#{21:21,222:333}"></s:optgroup>
<s:optgroup label="31-40" list="#{31:31}"></s:optgroup>
</s:select>
<s:submit></s:submit>
</s:form>
</body>