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>