传智播客strus2源码解析~~~超NBstruts2错误提示位置修改

第一个问题出现了,如下图:


 

说明

很多人都是对此很烦恼, struts2 使用的默认主题是 xhtml ,查看 html 页面的源码发现,它给我们生成了表格布局,所以界面比较整齐,但在提供便利的同时,也带来些烦恼,就是错误提示出现的位置。

解决方案

1 )把主题设为 theme=simple ,自己去控制布局,

2struts 使用 freemarker 模版技术,为我们标签生成了 html 代码,所以我们通过修改模版设置错误信息提示的位置。

解读源码了:




 

 

 

果然是继承了 Component ,学框架思想最重要的是看别人的注释,因为注释是别人思想的表达,这个类负责通过模版构建 html 文本,所以我们最重要的是找到模版的位置,这个我也是大概看懂,毕竟还没达到水平,相信您已经达到 ,大致意思是找这些属性值,从而定位到 ftl 模版文件

struts.ui.theme=xhtml


struts.ui.templateDir=template


struts.ui.templateSuffix=ftl


:<s:checkbox/> /template/xhtml/checkbox.ftl 模版文件,类推 <s:textfield/>,strus2-core.jar 下找 textfield.ftl ,发现是 text.ftl, 打开我们查看:

 

包含三个模版, controlheader.ftl 又包含 controlheader-core.ftl 文件,该文件才是核心,

现在我们要修改 controlheader-core.ftlcontrolfooter.ftl 文件,把错误信息放到 controlfooter.ftl 里面,我们可以有两种方式修改:

1) 拷贝出两个文件,修改后再压缩进去(严重不建议!)

2) 既然有这样的需求, strus2 团队肯定考虑到了,这让我实在太佩服他们了,每个细节考虑的都是那么周到,看官方文档


本章里 strus2 团队还给我们提供很多建议,建议我们不要随便更换模版引擎,如要修改 ftl 文件最好把源文件拷贝出来加以修改,不要自己手工重写,以防止出错。

相信也不用解释了,格式为: /template/$theme/$template.ftl .

所以我们只要在 Web-Root 下创建 /template/xhtml 文件夹,拷贝 controlheader-core.ftlcontrolfooter.ftl 文件再加以修改。

本人对于 freemarker 语言不是很了解,但掌握了思想,这种增增删删的操作还是可以应付的,经过几轮修改,总于搞定了。

 

 

 

发现它没有 doStartTag() 方法,所以猜肯定在父类里定义了,查看 AbstractUITag ,这个类里也没有 doStartTag() 方法,这个类是所有 UI 标签的父类,里面定义了标签的属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值