您的位置:首页 > 编程语言 > Java开发

关于Struts2在校验的时候去除表单中的只带的样式

2016-03-30 19:30 417 查看


当你写完注册校验的时候,一运行,咯噔一下,你前台的界面都乱了,你木有一种崩溃的感觉,有没有一种想杀人的冲动

。莫着急少年,老司机带大家装逼来了!上车刷卡。

滴滴开车了!
说正经的了,今天我再写Struts2的注册校验,我的校验很简单就是配置了一个校验文件UserRegisterAction-validation.xml文件。
我测试的时候用的是<s:fielderror fieldName="user.password" theme="simple"/>来一个一个在valueStack中取出错误的信息,但是我发现了一个问题:输出的信息不是一块肉,带的骨头,Struts2自己带了一些格式进去,具体的是带点,带换行,这让我感到非常的不爽。这样弄就会完全打乱前台的布局,这样非常的不好,如果让前台弄这些,会奔溃的。
现在我们讲如何处理这种问题
1,利用ognl从值栈中直接拿值就可以啦
你想,错误信息是保存在valuestack中的,我直接从值栈中取到不就可以了,我直接吃肉就可以啦啊!
但是这时候的ogl表达式就的用好了,先确定你用的是模型驱动还是属性驱动,属性驱动就很好取值了啊<s:property value="errors.username" />但是在模型驱动的时候就得注意了,让我们debug一下看一下值栈中是怎样保存错误信息的


我们看到在errors中保存的是一个集合,所以我们要按照集合的ognl取值了
<s:property value="errors['user.username'][0]" />这里关于集合的取值,大家再查一查,我也不太理解的很深,基本就是这样的格式

这样就可以取到肉了,是不是很简单,关键点是要理解集合用ognl怎样写
2,第二种方法就是关于struts2标签关于主题与模板的哪一块
我们开始做
1,找到你下载的Struts包中的lib文件夹,然后减压开,如图


2

找到如图的文件,fielderror.ftl文件然后我们复制上

3,然后再我们的项目中新建一个文件夹叫做template文件夹,然后再在这个文件夹上新建另一个文件夹名字叫做simple然后我们把复制的文件黏贴到这个下面就变成如图这样的了

 


4,我们点进去修改里面的代码

如图我们把红色的部分都去掉然后保存,

<s:fielderror><s:param>user.username</s:param></s:fielderror><br/>进行显示

然后运行你的项目



然后就可以吃到肉了,哈哈


是不是很开心把问题解决了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息