Struts学习—Struts标签二

param 传参

用于给其他标签传参。比如给include标签传递参数。

常用控制标签

if elseif else 流程控制标签

if标签可以独立使用。Elseif和else标签需要跟if标签搭配才能使用。说白了就是替代我们的if、elseif、else语句的功能。在jsp中使用更加方便,下面是使用例子:

    <%

       request.setAttribute("random",new Random().nextInt(100));

     %>

     <s:if test="#request.random>=80">

        <b>运气不错!</b>

     </s:if>

     <s:elseif test="#request.random>=60">

        <b>运气一般!</b>

     </s:elseif>

    <s:else>

       <b>运气不怎么样!</b>

    </s:else>

 

iterator 循环迭代标签

iterator主要用来对集合(list/set/map/数组)进行迭代。

常用的属性有:

1. value  将要迭代的集合,使用OGNL表示

2. var    指向集合中正被迭代的对象

3. begin   如果指定,迭代器从begin指定的索引开始

4. end    如果指定,迭代器到end指定的索引结束(包含end索引指向的对象)

5. step     如果指定,迭代器每次递增的增量。如果不指定,默认是1

6. status  用来表示迭代器状态的变量。他有如下的方法:

                  int  getCount()      返回迭代次数

                  int getIndex()           返回当前迭代的索引值

                  boolean isEven()     当前迭代的索引值是否偶数

                  boolean isFirst()      当前迭代的索引值是否第一个元素

                  boolean isLast()      当前迭代的索引值是否最后一个元素

                  boolean isOdd()      当前迭代的索引值是否奇数

 

下面是测试代码:

  <body>

    <s:set var="s" value="{00,11,22,33,44,55,66,77,88,99}" ></s:set>

    <table width="200px" border="1">

     <s:iterator value="#request.s"  var="temp" begin="0" end="7" step="1" status="idx">

        <s:if test="#idx.odd">

           <tr bgcolor="gray"><td><s:property value="#idx.index"/>---<s:property value="#temp" /></td></tr>

        </s:if>

        <s:else>

           <tr><td><s:property value="#idx.index"/>---<s:property value="#temp" /></td></tr>

        </s:else>

     </s:iterator>

    </table>

  </body>

 

执行结果:

常用表单UI标签

学习UI标签,我们要结合生成的HTML源代码,即可很深刻的理解标签的作用和含义。

form 表单

<s:form>标签用于生成HTML中的<form>,以及相关的布局代码(这里是用table标签来做布局)。

 

代码示例和生成的HTML代码:

    <s:form action="test" name="regFrm">

       <s:textfield label="用户名" name="uname"></s:textfield>

       <s:password label="密码" name="pwd" ></s:password>

       <s:textfield label="邮箱" name="email"></s:textfield>

       <s:submit  value="注册" ></s:submit>

    </s:form>

       <form id="test" name="regFrm" action="test" method="post">

           <table class="wwFormTable">

              <tr>

                  <td class="tdLabel">

                     <label for="test_uname" class="label">

                         用户名:

                     </label>

                  </td>

                  <td>

                     <input type="text" name="uname" value="" id="test_uname" />

                  </td>

              </tr>

 

              <tr>

                  <td class="tdLabel">

                     <label for="test_pwd" class="label">

                         密码:

                     </label>

                  </td>

                  <td>

                  <input type="password" name="pwd" id="test_pwd" />

                  </td>

              </tr>

 

              <tr>

 

                  <td class="tdLabel">

                     <label for="test_email" class="label">

                         邮箱:

                     </label>

                  </td>

                  <td>

                     <input type="text" name="email" value="" id="test_email" />

                  </td>

              </tr>

 

              <tr>

                  <td colspan="2">

                     <div align="right">

                         <input type="submit" id="test_0" value="&#27880;&#20876;" />

                     </div>

                  </td>

              </tr>

 

           </table>

       </form>

 

根据生成的HTML源代码,我们可以深刻的理解<s:form>标记的含义。同时,我们通过javascript操作时也可以更加深刻,控制力更强。

textfield 文本域

对应HTML中的<input type=text />,即普通文本域。

 

<s:textfield label="用户名" name="uname"></s:textfield>

<tr>

                  <td class="tdLabel">

                     <label for="test_uname" class="label">

                         用户名:

                     </label>

                  </td>

                  <td>

                     <input type="text" name="uname" value="" id="test_uname" />

                  </td>

</tr>

textarea 多行文本域

对应html标签中多行文本域<textarea>。

<s:textarea label="自我介绍" name="selfIntro" rows="5" cols="50" value="请输入自我说明"></s:textarea>

              <tr>

                  <td class="tdLabel">

                     <label for="test_selfIntro" class="label">

                         自我介绍:

                     </label>

                  </td>

                  <td>

                     <textarea name="selfIntro" cols="50" rows="5" id="test_selfIntro">&#35831;&#36755;&#20837;&#33258;&#25105;&#35828;&#26126;</textarea>

                  </td>

              </tr>

file 文件域

对应文件域。示例代码如下:

<s:file label="上传头像" name="logo"></s:file>

<tr>

    <td class="tdLabel"><label for="test_logo" class="label">上传头像:</label></td>

    <td><input type="file" name="logo" value="" id="test_logo"/></td>

</tr>

checkbox

checkbox对应HTML中的checkbox标签。示例如下:

<s:checkbox value="true"[A1]  name="favorite" label="已阅读协议" fieldvalue="1"></s:checkbox>

<tr>

           <td valign="top" align="right">

           </td>

           <td valign="top" align="left">

 

              <input type="checkbox" name="favorite" value="true"

                  checked="checked" id="test_favorite" />

              <input type="hidden" id="__checkbox_test_favorite"

                  name="__checkbox_favorite" value="true" />

              <label for="test_favorite" class="checkboxLabel">

                  已阅读协议

              </label>

           </td>

       </tr>

 

checkboxlist  复选框

由于复选框往往是多个一组使用,Checkboxlist帮助我们跟集合结合使用,很容易写出多个复选框。示例如下:

<s:set var="a" value="{'java','java','java','发呆'}" scope="request"></s:set>

<s:checkboxlist list="#request.a"  name="favorite" label="喜欢做的事" ></s:checkboxlist>

       <tr>

           <td class="tdLabel">

              <label for="test_favorite" class="label">

                  喜欢做的事:

              </label>

           </td>

           <td>

              <input type="checkbox" name="favorite" value="java" id="favorite-1" />

              <label for="favorite-1" class="checkboxLabel">

                  java

              </label>

 

              <input type="checkbox" name="favorite" value="java" id="favorite-2" />

              <label for="favorite-2" class="checkboxLabel">

                  java

              </label>

              <input type="checkbox" name="favorite" value="java" id="favorite-3" />

              <label for="favorite-3" class="checkboxLabel">

                  java

              </label>

              <input type="checkbox" name="favorite" value="发呆" id="favorite-4" />

              <label for="favorite-4" class="checkboxLabel">

                  发呆

              </label>

              <input type="hidden" id="__multiselect_test_favorite"

                  name="__multiselect_favorite" value="" />

           </td>

       </tr>

 

另一种常见用法:

<s:checkboxlist list="#{'1':'java','2':'java','3':'java','4':'发呆'}" value="{'1','2'}"  name="favorite" label="喜欢做的事" ></s:checkboxlist>

页面效果:


表示被选中。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值