Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 表单提交后IllegalArgumentException返回消息_Java_Jsf_Primefaces - Fatal编程技术网

Java 表单提交后IllegalArgumentException返回消息

Java 表单提交后IllegalArgumentException返回消息,java,jsf,primefaces,Java,Jsf,Primefaces,我有一个包含表单元素的UIPanel。单击submit,表单将验证所有字段,如果它们都有效,则继续将字段值插入数据库。如果DB返回重复密钥异常,我将显示一条消息,告诉用户更新字段(请参阅) 消息会显示,表单在大部分情况下都会正确加载,但当Calendar元素抛出时会出现问题 java.lang.IllegalArgumentException: Cannot format given Object as a Date 如果我提交表单,并且表单在验证期间发现错误(与此日历字段相关或无关),则没有

我有一个包含表单元素的UIPanel。单击submit,表单将验证所有字段,如果它们都有效,则继续将字段值插入数据库。如果DB返回重复密钥异常,我将显示一条消息,告诉用户更新字段(请参阅)

消息会显示,表单在大部分情况下都会正确加载,但当Calendar元素抛出时会出现问题

java.lang.IllegalArgumentException: Cannot format given Object as a Date
如果我提交表单,并且表单在验证期间发现错误(与此日历字段相关或无关),则没有问题,只有在验证完成后,我添加此消息,表单才会引发此异常

下面是我如何生成日历的代码,但我不确定为什么它只会在这个场景中抛出错误,而不会在其他场景中抛出错误

Calendar input = new Calendar();
input.setPattern("MM/dd/yyy");
input.setId(inputId);
input.setStyleClass(inputId);
input.setShowOn("button");
input.setNavigator(true);
input.setValueBinding("value", vb);
if(defaultVal != null && !defaultVal.equals("")){   
    SimpleDateFormat dbFormat = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat displayFormat = new SimpleDateFormat("MM/dd/yyyy");
    String defaultDate = displayFormat.format(dbFormat.parse(defaultVal));
    Date date = new Date();
    date = displayFormat.parse(defaultDate);                            
    if(required != null && !required.equals("") && !required.equals(",") && mandatory.length > 1){
        if(mandatory[1].equalsIgnoreCase("Y")){
            input.setRequired(true);
            input.setRequiredMessage("Please enter a  "+inputLabel+".");
            HtmlMessage message = new HtmlMessage();
            message.setFor(inputId);
            message.setStyleClass("errorMessage");
            div.getChildren().add(input);
            div.getChildren().add(message);
        }else{
            input.setRequired(false);
            div.getChildren().add(input);
        }
    }else{
        div.getChildren().add(input);
    }
}

假设错误指向以下行是否安全:String defaultDate=displayFormat.format(dbFormat.parse(defaultVal))?defaultVal是如何声明和分配的?当错误发生时,请查看它在此行之前的值。不,这实际上可以编译。我有一些日志,我删除后,一切编译良好,一直到结束的方法。。。。当页面尝试呈现时会出现错误。defaultVal是页面前面声明的字符串。控制台显示以下错误:
severy:error Rendering View[/common/copy.xhtml]
java.lang.IllegalArgumentException:无法将给定对象格式化为日期