当前位置: 首页 > news >正文

thinkphp2.1网站挂文件婚庆网

thinkphp2.1网站挂文件,婚庆网,wordpress 直接连接数据库文件,厦门设计公司有哪些primefaces你们中有些人已经知道我和我的合著者Mertalışkan正在研究PrimeFaces Cookbook的2.版。 Packt Publishing允许我从新章节“客户端验证”的一个食谱中摘录一小部分摘录。 这将有助于使读者知道这本书的内容。 在此博客文章中#xff0c;我想讨论使用Bean验证扩展的P… primefaces 你们中有些人已经知道我和我的合著者MertÇalışkan正在研究PrimeFaces Cookbook的2.版。 Packt Publishing允许我从新章节“客户端验证”的一个食谱中摘录一小部分摘录。 这将有助于使读者知道这本书的内容。 在此博客文章中我想讨论使用Bean验证扩展的PrimeFaces客户端验证CSV。 Bean Validation是一个验证模型可作为Java EE 6平台的一部分使用它允许通过约束将字段方法或类上的批注形式的验证。 JSF 2.2支持对托管bean以及Spring或CDI bean中的字段属性及其getter / setter的验证。 只要不使用OmniFaces之类的实用程序尚不支持在类级别进行验证。 PrimeFaces的CSV与Bean验证具有内置集成。 注释定义的约束可以通过CSV框架在客户端进行验证。 尽管Bean Validation API定义了一整套标准约束注释但可以轻松想到这些标准注释不足的情况。 对于这些情况您可以为特定的验证要求创建自定义约束。 PrimeFaces中的客户端验证API与自定义约束无缝协作。 在本食谱中我们将开发一种特殊的自定义约束和验证器以验证卡验证码 CVC 。 CVC与银行卡号一起用作安全功能。 它是一个长度在三到四位数之间的数字。 例如万事达卡或Visa卡需要三位数而美国运通卡需要四位数。 因此CVC验证将取决于所选的银行卡。 用户可以通过p:selectOneMenu选择银行卡在p:inputText键入CVC然后提交输入。 怎么做… 我们将从用于CVC字段的自定义注释开始。 import org.primefaces.validate.bean.ClientConstraint; import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.METHOD;Constraint(validatedBy CvcConstraintValidator.class) ClientConstraint(resolvedBy CvcClientConstraint.class) Target({FIELD, METHOD}) Retention(RetentionPolicy.RUNTIME) public interface ValidCVC {String message() default {invalid.cvc.message};Class?[] groups() default {};Class? extends Payload[] payload() default {};// identifier of the select menu with cardsString forCardMenu() default ; } Constraint是来自Bean Validation API的常规注释而ClientConstraint是来自PrimeFaces CSV框架的注释它有助于解析元数据。 开发的注释定义消息密钥invalid.cvc.message并且具有Custom属性forCardMenu 。 此属性的值是任何有关PrimeFaces Selectors (PFS)搜索表达式用于引用银行卡的选择菜单。 这是必需的因为有效的CVC值取决于所选的卡。 CvcConstraintValidator的目标是验证输入长度。 public class CvcConstraintValidator implements ConstraintValidatorValidCVC, Integer {Overridepublic void initialize(ValidCVC validCVC) {}Overridepublic boolean isValid(Integer cvc, ConstraintValidatorContext context) {if (cvc null || cvc 0) {return false;}int length (int) (Math.log10(cvc) 1);return (length 3 length 4);} } CvcClientConstraint的目标是准备元数据。 public class CvcClientConstraint implements ClientValidationConstraint {private static final String CARDMENU_METADATA data-forcardmenu;Overridepublic MapString, Object getMetadata(ConstraintDescriptor constraintDescriptor) {MapString, Object metadata new HashMapString, Object();Map attrs constraintDescriptor.getAttributes();String forCardMenu (String) attrs.get(forCardMenu);if (StringUtils.isNotBlank(forCardMenu)) {metadata.put(CARDMENU_METADATA, forCardMenu);}return metadata;}Overridepublic String getValidatorId() {return ValidCVC.class.getSimpleName();} } 让我们转到客户端实现。 首先我们必须创建一个JavaScript文件说validators.js 并命名空间中的注册有自己的验证PrimeFaces.validator名为ValidCVC 。 此名称是由getValidatorId()方法返回的唯一ID请参见类CvcClientConstraint 。 要实现的功能称为validate() 。 它有两个参数元素本身和要验证的当前输入值。 PrimeFaces.validator[ValidCVC] {MESSAGE_ID: invalid.cvc,validate: function (element, value) {// find out selected menu valuevar forCardMenu element.data(forcardmenu);var selOption forCardMenu ?PrimeFaces.expressions.SearchExpressionFacade.resolveComponentsAsSelector(forCardMenu).find(select).val() : null;var valid false;if (selOption selOption MCD) {// MasterCardvalid value 0 value.toString().length 3;} else if (selOption selOption AMEX) {// American Expressvalid value 0 value.toString().length 4;}if (!valid) {throw PrimeFaces.util.ValidationContext.getMessage(this.MESSAGE_ID);}} }; 其次我们必须为本地化消息创建一个JavaScript文件例如lang_en.js 。 PrimeFaces.locales[en] {messages : PrimeFaces.locales[en_US].messages };$.extend(PrimeFaces.locales[en].messages, {...invalid.cvc:Card Validation Code is invalid }); Bean具有两个必需属性并带有NotNull注释。 另外属性cvc带有我们的自定义注释ValidCVC 。 forCardMenu的属性forCardMenu指向p:selectOneMenu的样式类该样式类列出了可用的银行卡。 Named ViewScoped public class ExtendCsvBean implements Serializable {NotNullprivate String card;NotNullValidCVC(forCardMenu (.card))private Integer cvc;public void save() {RequestContext.getCurrentInstance().execute(alert(Saved!));}// getters / setters... } 在XHTML片段中我们有一个带有两个银行卡的选择菜单和一个CVC输入字段。 p:commandButton验证字段并在回发时执行方法save() 。 h:panelGrid idpgrid columns3 cellpadding3 stylemargin-bottom:10px;p:outputLabel forcard valueCard/p:selectOneMenu idcard styleClasscardvalue#{extendCsvBean.card}f:selectItem itemLabelPlease select a carditemValue#{null}/f:selectItem itemLabelMasterCarditemValueMCD/f:selectItem itemLabelAmerican ExpressitemValueAMEX//p:selectOneMenup:message forcard/p:outputLabel forcvc valueCVC/p:inputText idcvc value#{extendCsvBean.cvc}/p:message forcvc/ /h:panelGridp:commandButton validateClienttrue valueSaveprocessthis pgrid updatepgrid action#{extendCsvBean.save}/ 注意如您所见 p:selectOneMenu和p:inputText指定必需的属性。 我们可以实现的转变NotNull注释与价值所需要的属性 true 如果我们设置的参数范围内primefaces.TRANSFORM_METADATA至true 。 在最后一步中所有必需JavaScript文件都必须包含在页面上。 h:outputScript libraryjs namechapter10/lang_en.js/ h:outputScript libraryjs namechapter10/validators.js/ 下两张图片显示验证失败时会发生什么 如果一切正常则出现一个带有已保存文本的警告框。 向用户显示。 这个怎么运作… 消息密钥invalid.cvc.message和文本应放在名为ValidationMessages资源包中例如ValidationMessages_en.properties 。 ValidationMessages是Bean验证规范中指定的标准名称。 属性文件应位于应用程序类路径中并包含以下条目 invalid.cvc.messageCard Validation Code is invalid 。 此配置对于服务器端验证很重要。 类CvcClientConstraint的方法getMetadata()提供具有名称值对的映射。 元数据在呈现HTML中公开。 可以通过element.data(name)在客户端访问这些值其中element是基础本机HTML元素的jQuery对象。 具有元数据的CVC字段呈现为 input typetext data-forcardmenu(.card)data-p-conjavax.faces.Integer data-p-requiredtrue... 最有趣的部分是客户端验证器的实现。 要验证的值已经是数字因为首先它由PrimeFaces的内置客户端转换器针对数据类型java.lang.Integer转换。 我们只需要检查该值是否为正且具有有效长度。 有效长度取决于菜单p:selectOneMenu中所选的卡片PrimeFaces JavaScript API可以将其作为PrimeFaces.expressions.SearchExpressionFacade.resolveComponentsAsSelector(selector)进行访问其中选择器是任何PrimeFaces选择器在本例中为(.card) 。 如果验证失败则通过引发throw PrimeFaces.util.ValidationContext.getMessage(text, parameter)引发异常。 通过在p:commandButton上设置validateClient”true”来触发客户端验证。 翻译自: https://www.javacodegeeks.com/2015/01/extending-primefaces-csv-with-bean-validation.htmlprimefaces
http://www.zqtcl.cn/news/14446/

相关文章:

  • 一流的微商城网站建设应用商场安全下载安装
  • 个人做网站给手机发短信免费注册自助网站
  • 淘宝客网站如何让做嘉兴网站建议
  • 北京网站建设模板下载学做面食最好的网站
  • 免费前端模板网站石家庄业之峰装饰公司怎么样
  • 如何知道别人的网站流量来自于哪里移动网站自助制作
  • 长宁区网站建设公工商营业执照网上查询官网
  • 全自动网站制作源码wordpress 渲染html
  • 东莞市建设小学网站北航刘禹导师做网站
  • 珠海教育局系统网站网站建设需求多少钱大概
  • 做模具的网站嵌入式软件开发工资高吗
  • 做网站怎么套模板做网站需要办什么证件
  • 网站开发用哪种语言android应用商店
  • 广西百色建设局网站酷家乐网站做墙裙教程
  • tk网站域名卖线面网站
  • it网站建设资讯网泰安网站优化
  • 个人域名 做公司网站做网站的怎么挣钱、
  • 一般企业网站建设合同大学生动漫主题网页制作
  • 有哪些做ae小动效的网站如何保存自己做的网站
  • 建站之星官网建设网络课程网站建设
  • 果汁网站模板WordPress主题改变登录页面
  • 电子商务网站上线活动策划学平面设计要多少钱
  • 网站怎么防采集乌兰察布建设局网站
  • 公司网站首页设计构想网站进入百度观察期
  • 网站开发与维护能做什么职业长沙招聘网站哪个最好
  • 手机网站建设渠道seo的中文含义是什么
  • 如何在线实现手机版网站建设我要发布信息
  • 网站死链怎么删除学校网站建设申请报告
  • 门户网站概念openwrt安装wordpress
  • 赤峰网站建设赤峰18互联网站做网站程序