Struts2自定义Theme

1. Struts2 Theme与WebWork Theme
     用法上是一样的,几乎没有差别,默认都是xhtm,区别就是将WebWork的配置改成了Struts的配置

2. Theme的作用
     Theme可以理解为模版,struts ui标签都有与之对应的模版,可以解压struts2-all-2.0.1.jar来看看,里面有template目录,打开xhtm查看struts ui标签对应的模版。我认为theme的作用如下:
    1) 统一考虑控件的外观和行为。例如对于文本框,有必填和非必填的,那么我们可以定制必填文本框的模版,在文本框后面带上红色的"*",并且带required校验。
    2) 统一的布局风格,我们只关注内容而不必关注布局。例如对form,一个应用中有多个查询界面,所有的查询界面都采用同样的form模版,保持统一的风格。

3. 定制Theme
   1) 在WEB-INF下建立文件夹themes/mytheme
   2) 配置struts.properties,指定使用的theme
           struts.ui.theme = mytheme
           struts.ui.templateDir = /WEB-INF/themes
   3) text.ftl
   普通文本框

< input  type ="text" <#rt />
 name="${parameters.name?default("")?html}"
< #rt />
< #if  parameters.get("size")?exists >
 size="${parameters.get("size")?html}"
< #rt />
</ #if >
< #if  parameters.maxlength?exists >
 maxlength="${parameters.maxlength?html}"
< #rt />
</ #if >
< #if  parameters.nameValue?exists >
 value="
< @s .property value ="parameters.nameValue" /> " < #rt />
</ #if >
< #if  parameters.disabled?default(false) >
 disabled="disabled"
< #rt />
</ #if >
< #if  parameters.readonly?default(false) >
 readonly="readonly"
< #rt />
</ #if >
< #if  parameters.tabindex?exists >
 tabindex="${parameters.tabindex?html}"
< #rt />
</ #if >
< #if  parameters.id?exists >
 id="${parameters.id?html}"
< #rt />
</ #if >
< #if  parameters.cssClass?exists >
 class="${parameters.cssClass?html}"
< #rt />
</ #if >
< #if  parameters.cssStyle?exists >
 style="${parameters.cssStyle?html}"
< #rt />
</ #if >
< #if  parameters.title?exists >
 title="${parameters.title?html}"
< #rt />
</ #if >
/>

required text

< input  type ="text" <#rt />
 name="${parameters.name?default("")?html}"
< #rt />
< #if  parameters.get("size")?exists >
 size="${parameters.get("size")?html}"
< #rt />
</ #if >
< #if  parameters.maxlength?exists >
 maxlength="${parameters.maxlength?html}"
< #rt />
</ #if >
< #if  parameters.nameValue?exists >
 value="
< @s .property value ="parameters.nameValue" /> " < #rt />
</ #if >
< #if  parameters.disabled?default(false) >
 disabled="disabled"
< #rt />
</ #if >
< #if  parameters.readonly?default(false) >
 readonly="readonly"
< #rt />
</ #if >
< #if  parameters.tabindex?exists >
 tabindex="${parameters.tabindex?html}"
< #rt />
</ #if >
< #if  parameters.id?exists >
 id="${parameters.id?html}"
< #rt />
</ #if >
< #if  parameters.cssClass?exists >
 class="${parameters.cssClass?html}"
< #rt />
</ #if >
< #if  parameters.cssStyle?exists >
 style="${parameters.cssStyle?html}"
< #rt />
</ #if >
< #if  parameters.title?exists >
 title="${parameters.title?html}"
< #rt />
</ #if >
/>
< span  style ="color:red" > * </ span >

下面的一行使用requiredtext模版
<s:textfield label="%{getText('username')}" name="username" template="requiredtext.ftl"/>

参考:http://www.jscud.com/srun/news/viewhtml/4_2006_3/182.htm

转载于:https://www.cnblogs.com/wyl232/archive/2008/09/28/1301274.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值