如何自定义Struts2表单验证后的错误信息显示格式/样式

表单验证自定义验证规则和错误信息 表单验证自定义 立即下载

如何自定义Struts2表单验证后的错误信息显示格式/样式

(s:fielderror,换行,黑点)

 

前面一段时间学过一些Struts2的知识,感觉Struts2和1.x还是有很大的差别的,我还不好说1.x肯定会过时还是2.0会很快流行,这毕竟是需要作为导向的。

在Struts2中验证真的比较容易,可以在Action中直接写validate,也可以使用validate框架进行验证,这个我觉得比Struts1.x方便了很多,但是有个问题一直困扰了我,直到现在有个小程序要用到这个方面的知识,那就是验证后如何很好地人性化地在jsp页面中显示了。

大家都知道,Struts2显示验证结果有一些方式,一般通过两种方式,介绍如下:

1. 在页面的上面或者某个位置全部显示错误

代码:<s:fielderror cssStyle="color:red"></s:fielderror>

这样会显示所有的错误信息,模拟效果如下:

如何自定义Struts2表单验证后的错误信息显示格式/样式

2.在每个字段下面或上面显示,通过

<s:fielderror cssStyle="color:red">

<s:param>XXX(标签的name属性,象user.username)</s:param>

</s:fielderror>

例:       用 &nbsp;戶&nbsp;名:

<inputtype="text" name="user.username"/>

<s:fielderror cssStyle="color:red">

<s:param>user.username</s:param>

</s:fielderror>显示效果如下:

如何自定义Struts2表单验证后的错误信息显示格式/样式如何自定义Struts2表单验证后的错误信息显示格式/样式

上面的差不多是Struts默认显示的两种方式,但是我们常见的显示方式并不是这样的,所有我们需要自定义这种格式,我们的习惯是把错误信息显示在某个出错字段的后面,一行显示,而它给了一个小黑点并且换了行,我们现在就来解决这个问题。

这个问题困扰了我很久,真的很久以前想过,但是没有彻底地解决,一直留到现在,今天在google上搜了很久,终于给解决了,现在分享一下解决的途径。

先提供网上的思路给大家(关键解决的思路)

1.    struts2表单验证_错误信息的显示问题 中提到

引用 10 楼 starwar2030的回复:

可以在CSS中定义
.formFieldError {
font-family: verdana, arial, helvetica, sans-serif;
font-size: 12px;
color: #FF3300;
vertical-align: bottom;
}

.formFieldError ul{
    margin: 0px;
    padding: 3px;
    vertical-align: middle;
}
而后使用类似用
<td class="formFieldError"><s:fielderror><s:param value="%{'userRecord.…

不需要那么复杂的,你将struts-core*中的template解出来,然后你把它放到项目的WEB-INF下,在struts.properties中添加代码
struts.ui.theme=simple
struts.ui.templateDir=WEB-INF/template
然后修改下simple下的fielderror.ftl文件,将该文件中的<li>和</li>删除;

或者完全拷贝simple的内容定义一个自己的UI;
比如将simple拷贝一份命名为default,同样修改fielderror.ftl,在新建一个文件为theme.properties,添加内容parent= simple

再修改struts.properties的struts.ui.theme=default;这样每个文件的theme就不要指定了

 

发表于:2008-08-0409:47:3114楼得分:0

建议需要定义样式的同志看下自定义theme这章的内容

还有 theme="simple"是放在form标签内的

 

2. struts2 的 fielderror 样式问题 中提到

可以改一下STRUTS2的错误信息模板.

fielderror.ftl这个里面可以改它的样式

 

3. Struts2 模板 中提到

先前有网友问过我,他用了 Struts2的校验,但是错误输出是在输入框的上方,但希望错误信息是显示在输入框的右方,该如何做。当时我只告诉了他要修改模板文件,也只是大概告诉了他是在某个template 目录下的一个 ftl 文件,因那时具体操作自己也不太清楚。现在知道了线索,但实际修改还是很麻烦的。
   输入框 <s:textfield .../> 默认是用的xhtml/text.flt 模板,text.ftl 包装了 smple/text.ftl,错误信息可以追溯发现是在controlheader-core.ftl 中定义显示的,所以你可以把 xthml/text.ftl 和controlheader-core.ftl 拷到 WEB-INF/classes/template/xhtml目录中进行修改,WEB-INF/classes/template/xhtml 中的模板文件是优先于struts2-core-2.x.x.jar 里的 template/xhtml 目录中的模板文件加载

 

这是我整理出来的一些思路,但是看到这些的时候,特别是第三条Struts2模板的时候,感觉自己有点思路了,后面就是一步一步地进行,发现还真的解决了。这个时候也希望能够看看上面的文章。现提供我解决自定义错误显示方式的步骤。

1. 找到你的struts2-core-2.XXX.jar这个核心包,用软件解压;

2. 在\struts2-core-2.XXX\template\simple目录下找到fielderror.ftl(跟我们自定义格式非常有关系的文件);

3. 根据Struts2模板中提到的,把上面的fielderror.ftl放到WEB-INF/classes/template/simple目录下,这个我当时以为就在WEB-INF下新建一个classes的文件夹,后来提示已经存在,想想整个工程的结构发现,classes是放Java编译后的文件的,所有,这个时候的操作是在Src目录下新建一个template的文件夹,再在里面新建一个simple的文件夹(template/simple)(一定要注意建文件夹的步骤,是分两个文件夹建而不是建一个文件夹template.simple),把fielderror.ftl放到里面,目录结构如下:

如何自定义Struts2表单验证后的错误信息显示格式/样式

4. 修改fielderror.ftl配置文件,这一步才是关键,如何修改了,实际上也很简单,就是把<ul></ul><li></li>标签删除(仅仅是删除标签而不删除标签里面的内容),简便的方法就是用记事本打开这个文件并用空格替换上面的每个标签(一个一个来哦)。后面我会提供我已经修改后的这个文件,如果大家不想修改的话就直接把我修改后的文件放到上面的目录即可。

5. 上面一步就是把错误信息显示前面的小黑点和换行都去掉了,是个关键步骤了,后面就来显示了,还是用上面的方式

<s:fielderror cssStyle="color:red">

<s:param>XXX(标签的name属性,象user.username)</s:param>

</s:fielderror>

要不要加theme="simple"大家看着办,反正我是没加,也是可以的,还有,这个时候,你就可以通过css来定义一下错误信息显示的字体啊,颜色啊等,这里不再叙述。

6. 整个步骤的原理就是Struts会加载一些配置文件,如果我们的classess里面没有的话会找到jar包里面的,如果有的话优先使用配置文件。我们这里的就是用我们修改的fielderror.ftl配置文件来覆盖jar包里面的文件。

7. 来看看我们修改后的自定义显示错误信息吧,截图如下:

如何自定义Struts2表单验证后的错误信息显示格式/样式如何自定义Struts2表单验证后的错误信息显示格式/样式


SpringBoot集成SpringSecurity5和OAuth2 — 2、OAuth2客户端【SSO单点登录时作为客户端】 阅读详情

相关推荐

APO的全面进化之路(2):走向IBP、建设端到端供应链计划体系

前一篇记录阐述了在供应链计划(Supply Chain Planning)领域里SAP的关键产品APO的不断进化之路,即部分产品从APO进化到S/4HANA,本篇将继续阐述进化之路上的另一大中坚产品力量SAP-IBP(Integrated Business Planning)。作为SAP数字化供应链(Digital Supply Chain)中供应链计划SCP的左膀右臂,S/4HANA与IBP共同完善了计划域的完整闭环。本篇作为收尾,在先谈对IBP产品的个人认知之前,特别是在当今这个IT产品迭代多、技术革新

ChampaignWolf的专栏 5232

自己总结的自定义表单验证的两种方法(element-ui)

第一种 var vm = new Vue({ el: '#coupon_goods_add', data() { var decimals = /^[0-9]+(\.[0-9]{1})?$/; var checkDecimals = (rule, value, callback) => { set...

old_hu的备忘录 1528

CPRI原理及应用--基本原理

本文主要介绍CPRI的基本原理,包括CPRI的发展历程、CPRI基本协议、速率、帧结构、时延模型等

u014035968的博客 2万+

自定义交互element-ui表单的校验信息

在表格排版的表单中,使用icon+ tooltip来显示错误的验证信息。充分优化用户体验,使表格每行以最优雅的高度显示,节省空间。 支持 input 与 select 交互效果 相关的样式,在表单上添加类design-form-validateicon // 行内错误信息 icon 加 tooltip显示效果 .design-form-validateicon { .el-form-item--small.el-form-item { margin-bottom: 0; } .el-

知无涯 4335

深入解析TI C2000 ePWM模块:峰值电流模式Buck与LLC谐振变换器实战配置

脉宽调制(PWM)技术是电力电子与数字电源控制的核心,它通过调节开关信号的占空比或频率,实现对功率变换器输出电压、电流的精确控制。其基本原理是利用微控制器内部的定时器和比较器,生成具有特定时序的方波信号,驱动功率开关器件。这项技术的核心价值在于将复杂的模拟控制环路数字化,从而提升系统的可控性、灵活性和可靠性。在电机驱动、不间断电源(UPS)、服务器电源和新能源逆变器等广泛应用场景中,PWM技术都是实现高效能量转换的基石。本文聚焦于德州仪器(TI)C2000系列微控制器中功能强大的增强型PWM(ePWM)模块

weixin_30410119的博客 346

FICO F.27 Customer statement 打印

需求,定制化打印,替换标准的F.27打印 类似于采购订单的打印,但是略有不同,查阅资料之后步骤如下: T-code F.27 is SAP standard program to produce customer/vendor correspondence (letter). Correspondence Type is used to specify the related printing program and form for the particular correspondence. SAP

IamRunjiang的博客 1968

一个流行且实用的JS表单验证提示,演示了怎么自定义错误信息的显示方式,同时通过写FormValid.showError类方法来实现错误显示方式自定义: errMsg 是一个错误消息的数组,这样方便自定

表单验证提示效果 body{ color:#666666; font-size:12px} h1{ font-size:20px;} input{ border:#999999 1px solid; background-color:#FFFFEE} .button2{ background-color:#FF9900; border-bottom:#E34A00 2px solid;

5582

电力电子技术进阶:从基础到实战的完整学习路径

本文系统阐述了电力电子技术从基础到实战的完整学习路径。首先解析了电力电子作为“电能魔术师”的核心作用,随后深入剖析了数学工具、电路电磁场与半导体器件三大基础支柱。文章重点讲解了DC-DC、DC-AC、AC-DC等核心变换拓扑,并探讨了从经典PID到现代模型预测控制(MPC)的控制策略。最后,分享了硬件设计、软件调试、电磁兼容(EMC)等实战经验与前沿趋势,为学习者提供了清晰的进阶指南。

weixin_29204205的博客 447

vue中element ui Form表单自定义校验

element Form表单校验

Aom_yt的博客 1万+

Linux驱动学习--HCI框架及源码分析

目录 一、引言 二、HCI框架 三、pcm_read简要分析 一、引言 最近一直在分析蓝牙驱动,发现在底层驱动与上层协议栈间还有一层HCI,主机控制层,两者之间通过HCI协议通讯 而Linux也将HCI协议抽象层了一个框架。 为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像 UART、USB和PC Card等等。hci_core.c相当于一个框架,用于把各种具体通信方式绞合起来,并提供一些公共函数的实现。 今天就来简单的分析一下 二

文艺小少年的博客 2003

无人机导航中的坐标系统详解与转换实现

本文系统介绍了无人机导航中常用的坐标系及其转换方法。主要内容包括:1) 四种关键坐标系(大地坐标系ECEF、经纬度LLA、北东天坐标系NED、机体坐标系)的定义和特点;2) 坐标系间的转换原理与实现,重点讲解LLA与ECEF的互转公式及ECEF与NED的转换方法;3) 提供可直接使用的C++实现代码,包括基于WGS84椭球模型的精确转换算法。这些内容为无人机导航系统开发提供了实用的坐标系处理方案,能够有效解决多源数据在不同坐标系下的统一表示问题。

电脑管家 380

关于如何自定义Struts2表单验证后的错误信息显示格式【基于声明式验证】

网上关于很多通过修改template主题为simple达到最后的效果,但是多数是直接通过硬编码的方式去验证【即编程式验证】,这里就自己是怎么通过声明式验证去达到格式优化的效果的,可能代码比较low,希望大家见谅。 首先是动作类以及登陆的jsp页面:【StudentAction.java】【login.jsp】 public class StudentAction extends Action...

THOR007的博客 321

cesium 综合教程200+【目录】(已包含186篇文章)

cesium示例教程100+旨在为开发者提供简单快捷的,。在每一个示例中,解释相应的API知识点,做到。目录中有链接的为已有文章,没链接的为目标文章,不断更新中…

大剑师兰特的GIS世界 8898

自定义Struts2表单验证后的错误信息显示格式/样式

如何自定义Struts2表单验证后的错误信息显示格式/样式 (s:fielderror,换行,黑点)   前面一段时间学过一些Struts2的知识,感觉Struts2和1.x还是有很大的差别的,我还不好说1.x肯定会过时还是2.0会很快流行,这毕竟是需要作为导向的。 在Struts2中验证真的比较容易,可以在Action中直接写validate,也可以使用validate框

志气李的博客 980

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 怎样防止数据重复提交
下一篇: JSp window对象
dw_java08
博客等级 码龄15年 122粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值