Struts2.0下的客户端验证
Struts2.0 默认提供了 simple,xhtml,css_xhtml,ajax 几个模板主题, 但对于 simple 不支持客户端的js验证.
对 simple 和xhtml 下的几个文件进行了修改,
在自己的项目下创建了个template/simple 目录,将修改后的几个文件 form.ftl, form-close.ftl,form-close-validate.ftl ,form-validate.ftl 放到该目录下,并将 xhtml下的 theme.properties 和 validation.js 文件也copy到该目录下,
修改 theme.properties 里面的内容为 parent = simple . 这样将来就可以 继续扩展simple模板主题 ,写自己的 ftl 文件.
并同时使得simple的主题具有了客户端验证的功能.
另外,有些人也可能遇到过 即使使用xhtml 主题 设置了 form中的 validate="true" 也不能进行客户端验证.
这里就要注意几个问题:
通过浏览 form-close-validate.ftl 这个文件
我们发现 <#if ((parameters.validate?default(false) == true) && (parameters.performValidation?default(false) == true))>
这句代码, 里面还有一个条件就是 parameters.performValidation?default(false) == true ,只有它也成立的时候,验证才有效.
通过跟踪代码 org.apache.struts2.components.Form.java 类 中有个
private void evaluateClientSideJsEnablement(String actionName, String namespace, String actionMethod) 方法,
里面有一句 ActionConfig actionConfig = runtimeConfiguration.getActionConfig(namespace, actionName);
如果 actionConfig 返回null 那么它的下面的执行拦截的处理 就不会执行,performValidation 还是为false.
所以我们关键是要正确的 设置 namespace, actionName 这两个参数, 反映到 struts form 标签 中就是要正确的设置 namespace 和action 两个参数, 其中action 不能 设置成 yourActionName.action 这中格式, 只能采用 yourActionName 或着yourActionName!methodName 或者 yourActionName!methodName.action 这种格式.
Java代码
Java代码
[align=left][/align]
转载于:https://blog.51cto.com/gswxr/716005
Struts2.0下的客户端验证相关推荐
- [jQuery]使用jQuery.Validate进行客户端验证(高级篇-下)——不使用微软验证控件的理由...
2019独角兽企业重金招聘Python工程师标准>>> 引用源:http://www.cnblogs.com/kyo-yo/archive/2010/07/06/Use-jQuery ...
- RFC8705-OAuth 2.0双向TLS客户端身份验证和证书绑定访问令牌
RFC8705-OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens 目录 摘要 1. 简介(I ...
- Ubuntu10.04下gFtp2.0.19 远程客户端中文乱码解决方法
Ubuntu10.04下gFtp2.0.19 远程客户端中文乱码解决方法如下: 1.打开"gFTP-FTP-属性-常规-远程字符集": 2.将远程字符集设置为:gb2312,gbk ...
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
ASP.NET MVC通过Model验证帮助我们很容易的实现对数据的验证,在默认的情况下,基于ValidationAttribute的声明是验证被使用,我们只需要将相应的ValidationAttri ...
- 提交客户端证书_MQTT X v1.3.3 正式发布 - 跨平台 MQTT 5.0 桌面测试客户端
MQTT X 是由全球领先的开源物联网中间件提供商 EMQ 开源的一款跨平台 MQTT 5.0 桌面测试客户端,它支持 macOS,Linux,Windows.MQTT X 的用户界面借助聊天软件的形 ...
- 计算机win10下常用命令验证性实验
文章目录 计算机win10下常用命令验证性实验 ipconfig ping tracert ARP DHCP netstat DNS cache 计算机win10下常用命令验证性实验 1.需要安装的软 ...
- LINUX系统下ORACLE19C客户端安装步骤
LINUX系统下ORACLE19C客户端安装步骤 服务器系统版本:CentOS 7.4 Oracle客户端安装包(19C版本)下载地址: Instant Client for Linux x86-64 ...
- java oauth2登录以及权限_Spring Cloud集成Security OAuth 2.0权限鉴权验证示例
Spring Cloud集成Security OAuth 2.0权限鉴权验证示例 一.背景说明 目前市场上微服务之间涉及到相互调用的问题,在这个过程中为了验证安全性,需要采用鉴权方式进行管理.目前主流 ...
- DockerCompose MongoDB 副本集(集群) (客户端验证密码 - 集群内部使用mongodbKeyfile验证 ) 部署
本部署MongoDB副本集是没有用其他的配置什么的(例如: mongodb-compass).是最简单的一个 我是为了mongodb的事务才配置的这个副本集,要使用mongodb的事务必须要副本集. ...
最新文章
- Matlab与线性代数 -- 矩阵的重组2
- IDEA如何解决'File is read-only'的问题
- 设计师必备网址 百度MUX
- CoCos2D-X-2.1.5在Eclipse中导入HelloCpp项目搭建
- 【博客话题】技术生涯中的出与入
- 鸿蒙科技与文化,数字阅读 | “华为鸿蒙”:当现代科技遇到古典文化
- pulsar基础(六)——namespace的基本操作
- 关于Autorun.inf文件
- Playframework项目启动后自动停止问题记录
- react 打包体积过大_解决 webpack 打包文件体积过大
- 在SQL Server中对视图进行增删改
- java递归算法的实例最细讲解
- 关于计算机信息管理的照片,2021年10月山东计算机科学与技术(原计算机信息管理)专业自考报名需上传电子照片...
- c++ 链表快速查找
- 约瑟夫问题 pku1012(转自奋斗青春(亚伟)blog)
- scp 是我小看了你---基于密钥传输!
- python能用来制作游戏吗_python 做游戏开发怎么样?
- web前端培训JS 运行机制的梳理
- 汇编语言第4周学生总结反馈
- 基于Visual Studio2010开发office2010办公自动化应用(12)自定义VisioAddIn插件