Struts2 UI标签

Struts2 UI标签
主题和模板    所有UI标签基于主题和模板  一个模板就是使用JSP,Velocity或者Freemarker编写的文件,用于生成html,将一些具有共同观感的模板组织到一起就形成了主题。struts2使用目录名作为主题名,具有共同观感的模板文件放置在同一个目录下。
作为一个jsp页面中的ui标签,既可以设置该UI标签需要使用的模板,也可以设置该ui标签使用的主题,不推荐直接设置模板属性,而选择特定主题

设置主题方法:  优先级也是下面的顺序

1.通过设定特定UI标签上的tehme属性来指定主题
2.通过设定特定UI标签外围的Form标签的theme属性来指定主题
3.通过驱动的page会话范围内以theme为名称的属性来确定主题
4.通过取得request范围内以theme为名称的属性来确定主题
5. 通过取得session范围内以theme为名称的属性来确定主题
6. 通过取得application范围内以theme为名称的属性来确定主题
7.通过取得名为struts.ui.theme的常量(默认值是xhtml)来确定主题,该变量可以在struts.properties文件或者struts.xml文件中确定。

内建主题:
simple(默认主题)   ,   xhtml   ,   css_xhtml    ,    ajax
xhtml   ,css_xhtml主题都是对simple主题的包装和扩展
simple主题,每个UI标签只生成一个简单的html元素,不会生成其它额外的内容

xhtml主题,Strutss的默认主题,对simple进行了扩展,在该主题的基础增加如下附加特性
1.针对html标签使用标准的两列表格布局
2.每个html标签的label,既可以出现在html元素的左边,也可以出现上边,取决于lableposition属性的设置
3.自动输出校验错误信息
4. 输出javascript的客户端校验


css_html   对xhtml主题上加入css样式控制 

ajax对xhtml主题 上为每个标签提供了额外的ajax支持。ajax支持是以dojo和dwr为基础的
增加如下功能
1.增加ajax方式的客户端校验
2.支持远程表单的异步提交(最好和submit标签一起使用)
3.提供高级的div标签,允许实现局部更新html的功能
4.提供高级的a标签,允许动态加载并执行远端的javaScript代码
5.提供支持ajax的tabbedPanel
6.提供富客户端模型的pub-sub事件模型


分为 表单标签 非表单标签

表单标签    from标签和某个表单元素的标签
form              textfield   password radio checkbox
checkboxlist      select   doubleselect        combobox optiontrasferselect 
optgroup      updownselect      textera hidden file
reset      submit                  token   head label      

通用属性都继承了UIBean类
①与模板相关的属性,可以指定表单标签所用的模板和主题的
templateDir String 指定模板目录
theme String指定主题名称
template String 指定模板名称

②与javaScript相关的属性其中主题为simple

onclick onchange onmousedownonmouseover onmouseout
onfocus onblur onselect  
onkeyup(松开) onkeydown(按下) onkeypress(表单上单击某字符键)
ondblckick(表单元素上双击)

③工具相关的属性
tooltip String 设置此组件工具提示
tooltipConfig String 设置工具提示的各种属性

④表单标签的通用属性
cssClass       cssStyletitle disabled
label(表单元素关联lable) labelposition(label位置)
requiredposition(指定必填标记 “+” )name(表单name映射与action对应)        required(是否在表单元素的lable上添加+)
tableindex value key(设置表单元素对应的action的属性名)

⑤所有的表单元素标签都存在一个特殊的属性 form
作用:引用表单元素所在的表单,通过该form属性可以实现表单元素和表单之间的交互
通过${parameters.form.id}取得表单元素所在表单的ID

name  value属性详解:
name属性会映射到Action中的属性名称,value属性则代表此属性的值。
推荐第一种,struts2已经自动处理了属性内容的赋值工作
①将下面文本框的值绑定到Action的person属性的firstName
<s:textfield name="person.firstName" />

②使用表达式生成表单元素的值
<s:textfield name="person.firstName"  value="${pserson.firstName}"/>

提供了大量的表单标签,大部分的表单标签和HTML表单元素之间有一一对应的关系

常用和特殊的表单标签:


①form标签:输出一个HTML表单
action 可选  指定提交的action。 不要添加.action后缀
namespace method
enctype 上传文件 时设为multipart/form-data
foucusElement  指定某个元素id,页面加载该元素具有 焦点
validate   是否执行客户端验证。 只有使用xhtml或者ajax主题时候有效


②submit标签  用于输出一个提交按钮
input imagebutton
type   [input   image   button]   src[ 为image类型的图片地址]
action[指定处理请求的action]method [指定处理请求的action方法]

③textfield标签,一个单行文本框
maxlength [输入字符最大长度]   readonly[只读]  size[可视尺寸]

④password标签,输出一个口令输入框
maxlength [输入字符最大长度]   readonly[只读]  size[可视尺寸]  showPassword[是否显示密码]

⑤textarea,输出一个多行文本框
cols[列]   rows[行]   readonly[只读]   wrap[是否换行]

⑥select 输出一个下拉列表框   必须指定list属性指定集合[普通集合   map   集合中的对象实例]
list[迭代的集合  如果为Map 则key成为选项的value   map的value则成为选项的内容]
multiple[是否多选]
size[显示的选项个数]
listkey[指定集合中那个属性作为选项的value]
listvalue[指定集合中对象中的那个属性作为选项的内容]
headerKey[如果选择了header,提交的value如果使用该属性不能设为空值]
headerValue[显示在header选项内容]
emptyOption[是否在header后添加一个空选项]

常用表单标签用法

<s:form>
<s:textfield name="username" label="用户名:">
<s:password name="password" label="密码:">
<s:textarea name="personal" cols="30" rows=“5” label="个人简介:">
<s:select name="education" label="最高学历"
list="#{   1  :  '  高中  '    ,    2  :  '  大学  '   }"/>
<s:submit value="提交">
<s:form>

特殊标签

①checkbox    checkboxlist【多选】 可以一次创建多个复选框。用于生成多个check   boxhtml标签   必须指定list
list 必须 指定要迭代迭代的集合。如果是map 则key成为value  value成为内容
listKey 指定集合对象的那个属性作为属性key
listValue 制定集合对象的那一个属性作为选项的内容


②combobox  生成一个单行文本框和下拉列表框的结合,但两个表单元素只对应一个请求参数,只有单行文本框内的值才包含请求参数,而下拉列表框只是辅助输入
list 必须 生成各个选项
maxlength 大行文本框输入字符的最大长度
readonly size 可视尺寸和只读

doubleselect  比较有用 生成一个级联列表。为两个列表框设定选项
list listkey listvalue headerkeyheadervalue emptyOptionmultiple size
doubleid doublelistdoublelistkey doublelistvaluedoublesize doublenamedoublevalue

④head用于声称html的head 用于声称对CSS和js的引用
使用  theme="ajax"可以讲Ajax的头信息包含在页面中

⑤token  防止多次提交   避免刷新页面多次提交
在struts2配置文件中启用TokenInteceptor或者TokenSessionStoreInterceptor   拦截器
原理在表单添加一个隐藏域,每次加在页面页面的值不同。而拦截器拦截隐藏域的值如果两次值相同则组织表单提交。
<s:from><s:token/></s:from>

特殊表单标签用法
<s:head />
<s:form name="test">
<s:checkboxlist name="interest"
list="{'1','2','3','4'}"
label="兴趣"/>
<s:combobox   label="信息渠道" name="channel"
list = " {  ' 1 '  ,  ' 2 '  ,  ' 3 '  } "headerkey="-1"
headerValue="请选择"
emptyOption="true"/>
<s:doubleselect
lable="所在省"   name="province"list = " {  ' 1 '  ,  ' 2 '  ,  ' 3 '  } "doubleList="top == ' 1 '  ?   {  ' 1 '  ,  ' 2 '  ,  ' 3 '  }
: top==' 2 '  ? {  ' 1 '  ,  ' 2 '  ,  ' 3 '  }: top==' 3 ' ? {  ' 1 '  ,  ' 2 '  ,  ' 3 '  }
"/>
</s:form>



非表单标签

 a href[生成url地址]
 actionerror actionmessage  输出信息。前者输出action实例的getActionError方法返回值
后者输出getActionMessage()方法的返回值
actino中通过   addActionError    addActionMessage方法添加

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值