`
shishi11
  • 浏览: 117770 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

少了一点儿(客户端静态验证)

阅读更多

<!----><!----> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} --> <!---->

这里主要是两个问题,一个是如何得到 action uri 对应的 classname ,比较难,看了 struts2 源代码,找了好多方法,因为是 annotation 的方式验证,所以都不太成功,不知有没有找这个的代码。最后在 Form.java 里看到, evaluateExtraParamsServletRequest 方法里, addParameter("actionClass", clazz) ,发现其实是可以直接得到 classname 的。在 ValidtaionUtils 里加代码(其实并不好,只是为了减少 VM 中的代码,毕竟 VM 里写逻辑并不太好写)

public String toJQueryValidRule(Annotation annotation) {

       String rule = "" ;

       String vname = annotation.annotationType().getSimpleName();

       String v = (String) Validators .get(vname);

       if (vname.equals( "RequiredStringValidator" )) {

           // RequiredStringValidator. 没什么特殊的

           rule = rule + v + ": true" ;

       } else if (vname.equals( "IntRangeFieldValidator" )) {

           // min max

          

           rule = rule + "min :"

                  + (( IntRangeFieldValidator ) annotation).min() + "," ;

           rule = rule + "max :"

                  + (( IntRangeFieldValidator ) annotation).max() + "," ;

           rule = rule + v + ": true" ;

       } else if (vname.equals( "RequiredFieldValidator" )) {

           rule = rule + "required : true" ;

       }

       return rule;

    }

这里也只是根据思路的例子,只验证了 required intrange ,其它的需要根据 jquery 再写。

而且这么写也不一定是好的方式,只是个思路吧。

 

其它的话,就是在页面头部加入 jquery js ,用 sitmesh 加也行,这里就直接写了。三个部分:

<script src="/struts2/js/jquery.form.js" type="text/javascript"></script>

<script src="/struts2/js/jquery.validate.js" type="text/javascript"></script>

<script src="/struts2/js/messages_cn.js" type="text/javascript"></script>

这样,就可以中文了,如果不想再改什么的话,就不用写 messages 部分是,当然,它还可以用 class 的方式进行验证,不好加,但我想如何代码写得好的话,还可以减少不少代码。

 

这样,我们就可以用 jquery 或其它的框架,在浏览器端静态验证了。

 

当然,所有都只是个思路,还没有考虑以 xml 方式写 validation 的方式,以及前面说的用 css class 名字来进行表示的方式,以及改变 style 以改变显示验证的样式什么的。

分享到:
评论

相关推荐

    客户端静态页面玩分页.rar

    在客户端静态页面中实现分页是一项常见的需求,尤其在数据量较大的Web应用中,为了提高用户体验,我们需要将大量数据分段展示,这就是分页的基本作用。在这个“客户端静态页面玩分页.rar”压缩包中,可能包含了一些...

    MySQL客户端静态编译包,不依赖MySQL库,安装快捷。支持Mac、Windows和

    MySQL客户端静态编译包,不依赖MySQL库,安装快捷。支持Mac、Windows和Linux平台_ mysqlclient_builds

    静态编译工具,mysql客户端,redis客户端,mysql客户端,redis客户端.zip

    静态工具mysql客户端,redis客户端,静态编译工具說明由于情况下特定连接非本机各种数据库时,发起连接的机器没有安装对应的数据库,就只能通过代理的方式或者安装对应数据库后进行连接,以便能够直接连接,特收集...

    ASIC 综合后的静态验证方法的研究.pdf

    ### ASIC综合后的静态验证方法研究 #### 一、引言 随着深亚微米技术的不断进步和发展,数字电路的设计规模已经达到了前所未有的水平。据预测,在未来二十余年内,单个ASIC(Application Specific Integrated ...

    InstallAnywhere 使用客户端验证的说明文档

    **InstallAnywhere 使用客户端验证的说明文档** InstallAnywhere是一款强大的跨平台安装包制作工具,它允许开发者创建具有专业外观和功能丰富的应用程序安装程序。在某些情况下,为了满足特定的安全需求或业务逻辑...

    Coisas托管在GitHub上的静态网站客户端CMS

    **Coisas:GitHub上的静态网站客户端CMS** Coisas是一款基于JavaScript开发的内容管理系统(CMS),特别设计用于托管在GitHub上的静态网站。它允许用户无需深入了解HTML、CSS或JavaScript就能创建、编辑和管理自己...

    mqtt linux静态库,动态库,以及html帮助文档

    1. 静态库文件(如:libmqttclient.a):这是编译MQTT客户端应用时可以链接的静态库,使得应用程序能够发送和接收MQTT消息。 2. 动态库文件(如:libmqttclient.so):这些是运行时所需的库文件,用于动态链接到MQTT...

    客户端脚本调用服务端静态方法----PageMethods.doc

    ### 客户端脚本调用服务端静态方法——PageMethods 的实现原理及应用 #### 一、背景介绍 在Web开发中,客户端与服务端的交互是非常常见且重要的环节。传统的做法是通过表单提交或者Ajax请求来完成数据交换。然而,...

    基于Less语言的Gridea静态博客写作客户端设计源码

    该项目是一款采用Less语言开发的Gridea静态博客写作客户端设计源码,包含235个文件,涵盖56个TypeScript文件、44个EJS模板文件、41个Less样式文件、26个Vue组件文件、15个PNG图像文件、10个JavaScript文件、9个...

    Node中使用gRPC静态代码生成和动态代码生成的方式搭建客户端与服务端.rar

    Node中使用gRPC静态代码生成和动态代码生成的方式搭建客户端与服务端;Node中使用gRPC静态代码生成和动态代码生成的方式搭建客户端与服务端;Node中使用gRPC静态代码生成和动态代码生成的方式搭建客户端与服务端;Node...

    静态时序分析(PrimeTime)&形式验证(Formality)详解[归纳].pdf

    "静态时序分析(PrimeTime)与形式验证(Formality)详解" 静态时序分析(Static Timing Analysis)和形式验证(Formal Verification)是数字集成电路设计中两个非常重要的技术,它们可以提高时序分析和验证的速度,...

    有关Java页面静态化

    Java页面静态化主要有两种方式:服务器端静态化和客户端静态化。 1. 服务器端静态化: - **预渲染(Prerendering)**:在用户请求之前,系统自动将一些常用或者热点页面生成静态HTML文件,存储在文件系统或CDN上。...

    pop3 实现邮件客户端

    - `Pop3Statics.cs`:可能包含一些静态常量或方法,比如POP3命令字符串、状态码等。 - `Pop3Credential.cs`:用于存储和管理用户认证信息,如用户名和密码。 - `Pop3StateObject.cs`:在网络I/O操作中,此类可能...

    阿里云OSS客户端Windows版本下载

    OSS广泛适用于多种场景,包括数据备份、媒体资产存储、静态网站托管、移动应用资源存储等。对于Windows用户,阿里云提供了专用的OSS客户端工具,便于用户更方便地进行文件上传、下载以及管理。 "阿里云OSS客户端...

    Go-go语言编写的阿里云的DDNS客户端解决没有静态公网IP的痛点

    go语言编写的阿里云的DDNS客户端,解决没有静态公网IP的痛点

    创建corba客户端教程

    本教程提供了创建CORBA客户端应用程序的基础知识,包括对关键概念的解释、开发流程的概述以及使用静态和动态调用接口的详细步骤。掌握CORBA技术对于构建复杂的分布式系统是非常有用的,它提供了跨平台、跨语言的互...

    基于spyglass同步设计分析和静态验证.pdf

    本论文通过分析CDC传输中的亚稳态机理,总结了各种同步设计的优劣以及传统验证方法在CDC检查中的弊端,提出并搭建了一套基于SpyGlass的CDC静态验证流程

    java静态文件处理

    在Web服务器上,静态文件服务主要是指读取存储在服务器上的文件并将其内容发送到客户端。这种服务对于提高网站性能至关重要,因为它减少了服务器的计算负担,加快了内容的加载速度。 在Java中,处理静态文件的方式...

    informix 客户端

    - **Libraries**: 静态库或导入库文件,用于链接到Informix客户端功能。 - **Documentation**: 完整的SDK文档,包括API参考、示例代码和安装指南。 - **ODBC和JDBC驱动程序**: 允许通过ODBC或JDBC接口连接到Informix...

    客户端_服务器端

    客户端-服务器端(Client-Server)架构是一种网络通信模型,它是互联网上应用最广泛的设计模式之一。在这种架构中,系统分为两个主要部分:客户端和服务器端。客户端是用户交互的界面,而服务器端则处理客户端请求并...

Global site tag (gtag.js) - Google Analytics