`
shishi11
  • 浏览: 116455 次
  • 性别: 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

    在客户端静态页面中实现分页是一项常见的需求,尤其在数据量较大、无法一次性展示所有内容时,分页能提供更好的用户体验。"客户端静态页面玩分页.rar"这个压缩包文件可能包含了一些关于如何在JavaScript环境下实现...

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

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

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

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

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

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

    C#静态调用webservice

    通过以上步骤,我们可以利用C#静态调用Web Service,实现从客户端应用程序访问IIS上的数据库服务。这种方式简化了调用流程,减少了资源消耗,同时也提供了跨平台通信的能力。然而,实际项目中还需要考虑更多的细节,...

    Ajax 静态 验证

    在Ajax验证中,正则表达式可以在客户端即时验证用户输入,防止无效数据提交到服务器,提高用户体验。 至于"Jingtai"这个文件,它可能是静态HTML、CSS或JavaScript代码,用于展示如何实施Ajax验证的实例。分析这个...

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

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

    基于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...

    有关Java页面静态化

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

    pop3 实现邮件客户端

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

    静态留言板 实现静态留言功能

    此外,JavaScript还可以用于简单的客户端验证,如检查留言内容是否为空。 5. **HTML(超文本标记语言)**: HTML是网页内容的基础,用来定义页面结构。在静态留言板中,HTML将用于创建表单元素,如`&lt;form&gt;`、`...

    阿里云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中,处理静态文件的方式...

    客户端_服务器端

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

    ASIC综合后的静态验证方法的研究_舒适.caj

    ASIC综合后的静态验证方法的研究_舒适.caj

Global site tag (gtag.js) - Google Analytics