struts学习——struts标签(三)

radio  单选按钮

对应HTML中的单选按钮radio。示例代码如下:

<s:radio list="#{'1':'','0':''}" label="性别" name="gender" value="1" [g1] ></s:radio>

       <tr>

           <td class="tdLabel">

              <label for="test_gender" class="label">

                  性别:

              </label>

           </td>

 

           <td>

              <input type="radio" name="gender" id="test_gender1"

                  checked="checked" value="1" />

              <label for="test_gender1">

                 

              </label>

              <input type="radio" name="gender" id="test_gender0" value="0" />

              <label for="test_gender0">

                 

              </label>

           </td>

       </tr>

 

select下拉框

生成HTML中的<select>标签。示例代码如下:

<s:select name="address"  label="所在地"  list="{'北京','上海','深圳'}"></s:select>

<tr>
    <td class="tdLabel"><label for="test_" class="label">所在地:</label></td>
    <td>
<select name="address" id="test_">
    <option value="北京">北京</option>
    <option value="上海">上海</option>
    <option value="深圳">深圳</option>
</select>
</td>
</tr>
另一种写法:
<s:select label="所在地"  list="#{'1':'北京','2':'上海','3':'深圳'}"></s:select>
生成的源代码:
 

autocompleter自动完成框

使用autocompeter之前,一定要在页面中增加(代码中阴影显示的行)

 

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>测试struts2</title>

  </head>

  <sx:head />

 

项目中引入:struts2-dojo-plugin-2.2.1.1.jar。  struts2中将所有ajax相关的内容都放入了这个包中。

 

 

Autocompleter简单示例:

<sx:autocompleter label="专业" name="major" list="{'计算机应用','计算机工程','计算机数学','英语专业','英语外贸'}"   />

执行效果,在框中输入文字:

 

autocompleter动态数据加载

实际中,使用autocomleter时,数据量通常较大,不可能一下子进行加载,需要我们使用ajax按需加载,类似于Google  Suggest的效果。我们使用动态数据来完成更复杂的autocomplete的使用:

data.jsp功能是生成数据,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

['计算机软件','计算机应用','计算机理论','人工智能','英语口语','英语外贸','日语外贸','中文']

 

test.jsp代码如下:

       <sx:autocompleter label="专业" name="major"  href="data.jsp"

       loadOnTextChange="true" loadMinimumCount="0" autoComplete="false"

       showDownArrow="true" />

 

效果:

datetimepicker  标签日期选择器

典型使用代码:

<sx:datetimepicker   language="zh"  name="birthday" displayFormat="yyyy-MM-dd" label="输入出生日期"></sx:datetimepicker>

<sx:head extraLocales="zh"  />

 

效果:

 

中文bug问题的解决方式(当月份大于十月时会出现乱码问题)

  • 解压struts2-dojo-plugin-2.3.1.jar
  • 分别打开org\apache\struts2\static\dojo\nls\dojo-zh.js和dojo-zh_cn.js
  • 将下面代码copy进去

dojo.provide("nls.dojo_zh");dojo.provide("dojo.i18n.calendar.nls.gregorian");dojo.i18n.calendar.nls.gregorian._built=true;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh");dojo.i18n.calendar.nls.gregorian.zh={"days-standAlone-narrow":["日","一","二","三","四","五","六"],"eras":["公元前","公元"],"am":"上午","months-format-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"pm":"下午","months-format-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"months-standAlone-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-weekday":"Day of the Week","dateFormat-medium":"yyyy MMM d","field-second":"Second","field-week":"Week","timeFormat-full":"HH:mm:ss z","field-year":"Year","field-minute":"Minute","timeFormat-medium":"HH:mm:ss","field-hour":"Hour","dateFormat-long":"yyyy MMMM d","field-day":"Day","field-dayperiod":"Dayperiod","field-month":"Month","dateFormat-short":"yy/MM/dd","field-era":"Era","timeFormat-short":"HH:mm","timeFormat-long":"HH:mm:ss z","dateFormat-full":"EEEE, yyyy MMMM dd","field-zone":"Zone"};dojo.provide("dojo.i18n.calendar.nls.gregorianExtras");dojo.i18n.calendar.nls.gregorianExtras._built=true;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras.zh");dojo.i18n.calendar.nls.gregorianExtras.zh={"dateFormat-yearOnly":"yyyy'年'"};dojo.provide("dojo.i18n.calendar.nls.gregorian");dojo.i18n.calendar.nls.gregorian._built=true;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh");dojo.i18n.calendar.nls.gregorian.zh={"days-standAlone-narrow":["日","一","二","三","四","五","六"],"eras":["公元前","公元"],"am":"上午","months-format-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"pm":"下午","months-format-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"months-standAlone-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-weekday":"Day of the Week","dateFormat-medium":"yyyy MMM d","field-second":"Second","field-week":"Week","timeFormat-full":"HH:mm:ss z","field-year":"Year","field-minute":"Minute","timeFormat-medium":"HH:mm:ss","field-hour":"Hour","dateFormat-long":"yyyy MMMM d","field-day":"Day","field-dayperiod":"Dayperiod","field-month":"Month","dateFormat-short":"yy/MM/dd","field-era":"Era","timeFormat-short":"HH:mm","timeFormat-long":"HH:mm:ss z","dateFormat-full":"EEEE, yyyy MMMM dd","field-zone":"Zone"};dojo.provide("dojo.widget.nls.TimePicker");dojo.widget.nls.TimePicker._built=true;dojo.provide("dojo.widget.nls.TimePicker.zh");dojo.widget.nls.TimePicker.zh={"any":"any"};dojo.provide("dojo.widget.nls.DropdownTimePicker");dojo.widget.nls.DropdownTimePicker._built=true;dojo.provide("dojo.widget.nls.DropdownTimePicker.zh");dojo.widget.nls.DropdownTimePicker.zh={"selectTime":"Select time"};dojo.provide("dojo.widget.nls.DropdownDatePicker");dojo.widget.nls.DropdownDatePicker._built=true;dojo.provide("dojo.widget.nls.DropdownDatePicker.zh");dojo.widget.nls.DropdownDatePicker.zh={"selectDate":"Select a date"};

  • 保存时,使用utf-8编码进行保存。
  • 将修改成的两个文件,拖曳到压缩包中,操作如下:

 

 

默认值value无法设置的问题:

<sx:datetimepicker   language="zh"  name="birthday"  value="'2007-7-14'"  displayFormat="yyyy-MM-dd" label="输入出生日期"></sx:datetimepicker>

注意在如上代码中,value属性值增加了单引号处理。这样既可完成设置value

 

 

doubleselect  联动下拉框

不太灵活,一般建议手动完成! 作为扩展自学内容!

optiontransferselect  选项移动下拉框

 

 

实现上面效果,代码如下:

<s:optiontransferselect label="职业选择" name="alljob" list="{'计算机软件开发','硬件维修','软件测试'}"  doubleList="{'a','aa','aaa'}"  doubleName="myjob"

       leftTitle="计算机行业职业细分" rightTitle="已经选中的职业"

       leftDownLabel="向下" leftUpLabel="向上"

       rightUpLabel="向上"  rightDownLabel="向下" 

        headerKey="" headerValue="请选择职业"

       ></s:optiontransferselect>

 

optgroup 选项分组下拉框

         作为扩展自学内容!写出文档! 其实有html标签可以写:

       <select>

         <optgroup label="Swedish Cars">

           <option value ="volvo">Volvo</option>

           <option value ="saab">Saab</option>

         </optgroup>

      

         <optgroup label="German Cars">

           <option value ="mercedes">Mercedes</option>

           <option value ="audi">Audi</option>

         </optgroup>

       </select>

效果如下:

<sx:textarea /> 文本域

代码如下:

<sx:textarea label="简介" name="aa" value="ccc" ></sx:textarea>

效果:

常用非表单UI标签

fielderror、actionerror、actionmessage  输出错误信息

         跟数据校验结合紧密。见数据校验相关内容!


设置value值为1的选项默认选中!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值