默认情况下, form 标签将被呈现为一个表格形式的 HTML 表单. 嵌套在 form 标签里的输入字段
 将被呈现为一个表格行. 每个表格行由两个字段组成, 一个对应着行标, 一个对应着输入元素. 
提交按钮将被呈现为一个横跨两列单元格的行
struts2的UI要结合struts2中的标签使用:<%@ taglib uri="/struts-tags"   prefix="s"%>
password 标签扩展自 textfield 标签, 多了一个 showPassword 属性.该属性是布尔型. 
默认值为 false, 它决定着在表单回显时是否显示输入的密码. true显示密码 
<s:textfield name="username" id="username" value="张三" label="用户名"></s:textfield><br>
     <s:password name="password" value="123456" label="密码" showPassword="true"></s:password><br>
     <s:hidden name="id" value="111111"></s:hidden><br>
修改主题:
修改主题:
        A、通过 UI 标签的 theme属性(只适用于当前的标签)
    <s:textfield name="username"  label="用户名“
                                                     theme="simple"></s:textfield>
B、在一个表单里, 若没有给出某个 UI 标签的 theme 属性, 它将使用这个表单的主题
     (适用于整个form标签)
    <s:form  action="" method="post" namespace="/ui“    theme="simple">

C、修改 struts.properties 文件中的 struts.ui.theme 属性. (适用整个环境)
         <!-- 设置ui标签的主题 -->
         <constant name="struts.ui.theme" value="simple"></constant>


优先级:A>B>C
simple主题:去掉struts提供的各种样式eg:label
<label for="username" class="label">用户名::</label>
submit 标签<br>
<s:submit type="input" value="提交"></s:submit><br>
     <s:submit type="button" value="提交"></s:submit><br>
     <s:submit type="p_w_picpath" value="提交" src="button_ok.gif"></s:submit><br>
reset 标签<br>
<s:reset type="input" value="重置"></s:reset><br>
     <s:reset type="button" value="重置"></s:reset><br>
label 标签<br>
     <!-- xxxxxxxx<label id="uiTagAction_ui_"></label> -->
     <s:label>xxxxxxxx</s:label><br>
textarea 标签<br>
     <!-- 
      <textarea name="remark" cols="30" rows="5" readonly="readonly" id="uiTagAction_ui_remark">&#20170;&#22825;&#21457;&#38065;</textarea><br>
      -->
     <s:textarea name="remark" cols="30" rows="5" value="今天发钱" readonly="true"></s:textarea><br>
checkbox 标签<br>
<s:checkbox name="interest" label="足球" fieldValue="足球"></s:checkbox>足球
     <s:checkbox name="interest" label="篮球" fieldValue="篮球"></s:checkbox>篮球
     <s:checkbox name="interest" label="皮球" fieldValue="皮球"></s:checkbox>皮球
     <br>
     <hr>
     checkboxlist 标签<br>切记一定要加name属性
checkboxlist 标签被映射到一个字符串数组或是一个基本类型的数组. 若它提供的多选框一个也没有被选中, 相应的属性将被赋值为一个空数组而不是空值.

     形式一:list集合<br>
 <!-- 
       {'Java','.Net','RoR','PHP'}定义一个集合放置到s:checkboxlist的list属性中
        struts标签解析的时候,
           * 将'java'定义到type="checkbox"的value的属性中
           * 同时也将'java'定义到<label>Java</label>\

        * 使用value的属性让某个值被选中,中间添加{},如果是多个值用逗号分开
       -->
<s:checkboxlist name="subject" list="{'Java','.Net','RoR','PHP'}" value="{'Java','PHP'}" ></s:checkboxlist>
    形式二:Map集合<br>
 <!-- 
       定义井{1:'瑜珈用品',2:'户外用品',3:'球类',4:'自行车'}表示一个map集合
       listKey="key":将map集合的key的值放置到type="checkbox"中的value的属性值中(服务器接收到的值)
       listValue="value":将map集合的value的值放置到<label></label>标签的中间(用于显示)

       * 使用value的属性让某个值被选中,中间添加{},中间添加的值是map集合的key,如果是多个值用逗号分开
       -->
<s:checkboxlist name="subject" list="#{1:'瑜珈用品',2:'户外用品',3:'球类',4:'自行车'}" 
           listKey="key" listValue="value" value="{1,3}"></s:checkboxlist>
形式三:如果集合里存放的是javabean<br>
<s:checkboxlist name="person" list="#request.list" listKey="id" listValue="name" value="{2}"></s:checkboxlist>
radio 标签<br>
 <!-- 让一个值被选中使用value,对应单选框来说可以去掉{},{}表示多个值
         建议都加上 -->
     形式一:操作List集合<br>
<s:radio name="subject" list="{'Java','.Net','RoR','PHP'}" value="'RoR'"></s:radio>
形式二:操作Map集合<br>
<s:radio name="subject" list="#{1:'瑜珈用品',2:'户外用品',3:'球类',4:'自行车'}" listKey="key" listValue="value" value="3"></s:radio>
 形式三:如果集合里存放的是javabean<br>
<s:radio name="person" list="#request.list" listKey="id" listValue="name" value="3"></s:radio>
select 标签<br>
<!-- 
      headerKey:用来表示将指定的值'0'放置到option元素的value的属性值中,并在第一个Option中显示
      headerValue:用来表示将指定的值'--请选择--'放置到<option></option>元素的中间用于显示,并在第一个Option中显示
      -->
     形式一:如果集合为list<br>
<s:select name="stu" list="{'Java','.Net','RoR','PHP'}" headerKey="0" headerValue="--请选择--" value="{'PHP'}"></s:select>
形式二:如果集合为map<br>
 <!-- 
       listKey:将map集合中定义的key的值放置到option元素的value的属性值中(用于向服务器传递值)
       listValue:将map集合中定义的value的值放置到<option></option>元素的中间,(用于在页面上显示)
       -->
<s:select name="stu" list="#{1:'瑜珈用品',2:'户外用品',3:'球类',4:'自行车'}" listKey="key" listValue="value" headerKey="0" headerValue="--请选择--" value="{3}"></s:select>
     <br>
 形式三:如果集合里存放的是javabean(id和name为Person的属性)<br>
<s:select list="#request.list" listKey="id" listValue="name" headerKey="0" headerValue="--请选择--" value="{2}"></s:select>