我有以下复合组件:

xmlns="http://www.w3.org/1999/xhtml"

xmlns:h="http://java.sun.com/jsf/html"

xmlns:composite="http://java.sun.com/jsf/composite"

>

以及托管bean

import java.util.Date;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.ViewScoped;

import javax.validation.constraints.NotNull;

@ViewScoped

@ManagedBean

public class TestMB {

@NotNull

private Date value;

public String action1() {

System.out.println("The value is: " + value);

return null;

}

public Date getValue() {

return value;

}

public void setValue(Date value) {

this.value = value;

}

}

以下定制转换器:

import java.util.Date;

import javax.faces.component.UIComponent;

import javax.faces.context.FacesContext;

import javax.faces.convert.Converter;

import javax.faces.convert.FacesConverter;

@FacesConverter("myCustomConverter")

public class MyCustomConverter implements Converter {

@Override

public Object getAsObject(FacesContext arg0, UIComponent arg1, String value) {

if (value == null || "".equals(value)) {

return null;

}

return new Date();

}

@Override

public String getAsString(FacesContext arg0, UIComponent arg1, Object obj) {

if (obj == null) {

return null;

}

return obj.toString();

}

}

以下测试页面:

Enter value:

当我运行Web应用程序并将文本字段留空并点击提交按钮时,不会引发验证错误,我在Java控制台上获得以下内容:

The value is: null

为了使事情变得更复杂,如果我按如下方式修改我的复合组件(我将值=“#”添加到h:inputText

xmlns="http://www.w3.org/1999/xhtml"

xmlns:h="http://java.sun.com/jsf/html"

xmlns:composite="http://java.sun.com/jsf/composite"

>

并在设置NO值时再次尝试提交表单,我没有在页面上显示任何验证错误,但我在控制台中收到以下警告:

INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.

sourceId=myID:value[severity=(ERROR 2), summary=(may not be null), detail=(may not be null)]

然后,如果我再次尝试重新提交表单,则即使字段为空,也会提交操作 . 我在控制台中获得以下内容:

The value is: null

但是,如果我删除 id="myID" 一切都OK!

Finally: 如果我在表单上设置prependId = "false",一切正常 .

但我不想设置prependId =“false”,我确实需要设置ID :(

java holder 遍历_复合组件editableValueHolder与Bean验证不一致相关推荐

  1. java holder 遍历_如何获取所有RecyclerView ViewHolder?

    我想在点击其中一个项目时更改所有项目的文字颜色.我的问题是颜色仅在可见物品上发生变化.不可见项目的颜色根本不会改变.如何获取所有RecyclerView ViewHolder? 新功能: 另外我想知道 ...

  2. java 回归遍历_回归基础:代码遍历

    java 回归遍历 This article guides you through the basics of regression by showing code and thorough expl ...

  3. java容器遍历_高效遍历Java容器详解

    通过本文,你可以更深入的学习 Java 语言中 forEach 语法的知识,以及它和 C 语言形式的 for 循环. Steam API 的对比. 简介 Java 程序员经常使用容器,比如 Array ...

  4. java 挂钩子_挂钩组件

    我正在尝试创建一个图表可重用组件,但我无法围绕它进行包装 . 我们的想法是使用react(让我们称之为"Axes")重用以下SVG,以及一些功能和状态,如宽度和高度,数据→坐标映射 ...

  5. java dictionary遍历_遍历 Dictionary,你会几种方式?

    一:背景 1. 讲故事 昨天在 StackOverflow 上看到一个很有趣的问题,说: 你会几种遍历字典的方式,然后跟帖就是各种奇葩的回答,挺有意思,马上就要国庆了,娱乐娱乐吧,说说这种挺无聊的问题

  6. java properties 遍历_如何遍历properties文件的键值对并放置到application作用域里

    先建个监听器: [java] view plain copy package com.yjd.hy.server; import java.io.FileInputStream; import jav ...

  7. java arraylist遍历_遍历ArrayList的4种方法

    以下4种方法有什么不同,个人感觉好象没什么不同..除了用跌代器看上去比较帅以外.... package com.test; import java.util.ArrayList; import jav ...

  8. java树结构遍历_树形结构,java_树遍历统计总数,树形结构,java - phpStudy

    树遍历统计总数 { platformId: 3, areaId: "", areaName: "ROOT", parentAreaId: "" ...

  9. java授权失败_自定义Spring Security的身份验证失败处理方法

    1.概述 在本快速教程中,我们将演示如何在Spring Boot应用程序中自定义Spring Security的身份验证失败处理.目标是使用表单登录方法对用户进行身份验证. 2.认证和授权(Authe ...

最新文章

  1. js正则表达式/replace替换变量方法
  2. 总结下我所学 设计模式
  3. 算法学习之路|称量硬币(模拟)
  4. BZOJ1693: [Usaco2007 Demo]Asteroids
  5. mysql+秘密_mysql不被人知的秘密
  6. 脆弱的是生命 不脆弱的是精神 雅安 挺住!
  7. Python 爬虫 —— scrapy
  8. select 居右对齐
  9. jsp浏览图像bean原理分析与改良-JSP实用教程(第三版)耿祥义 张跃平编著第4章例题4_9-动态获取文件夹中的文件并返回
  10. WebSocket入门使用教程
  11. DELL官方证实:NVIDIA史上最大显卡质量事故
  12. Spring常用注解(全常用)
  13. 呼叫中心系统的解决方案
  14. 如何助力鸿蒙发展,实话实说:华为以一已之力,能不能推动鸿蒙系统的发展 - 区块网...
  15. 屏幕撕裂及掉帧原因与解决方案
  16. 【Prometheus】Alertmanager告警全方位讲解
  17. 计算机cad理论试题,2017职称计算机AutoCAD试题「附答案」
  18. Latex(Ctex)出现编译错误 ! Misplaced alignment tab character .
  19. Java学习——逻辑运算、双分支结构(if\else)
  20. strip: Unable to recognise the format of the input file

热门文章

  1. WinForm 之Control.Invoke 和Control.BeginInvoke 方法的使用 Control 不能在创建它的 Thread 之外被调用。但可以通过 invoke 来保证 C
  2. 关于winodows下编程c++遇到的引用文件路径问题
  3. Android—Bitmap图片大小计算、压缩与三级缓存
  4. 怎么设置电脑屏幕一直亮着_电脑屏幕缩小了肿么调回去。分辨率调了没用。
  5. qml自定义switch_QML官方系列教程——Qt Quick Controls Styles
  6. DELL服务器T410进行系统修复,ibm T410 BIOS修复过程-BIOS维修网站www.biosrepair.com
  7. C语言算小数加减,C语言带小数加减乘除.doc
  8. 桂林电子科技大学C语言大作业,桂林电子科技大学c语言程序设计习题集及答案qvzaewzm.doc...
  9. python web界面整合 tail_如何使用Python Tornado在HTTP上实现“ tail”?
  10. Android修改原生AlertDialog按钮的颜色大小边距位置以及标题居中等