表单提交后返回IllegalArgumentException消息

时间:2013-12-05 23:43:47

标签: java jsf primefaces

我有一个包含表单元素的UIPanel。单击提交时,表单将验证所有字段,如果它们都有效,则继续将字段值插入数据库。如果数据库返回重复键异常,则会显示一条消息,告知用户更新该字段(请参阅http://goo.gl/jOzZGG)。

消息显示,表单大部分正确加载,但Calendar元素抛出时出现问题

java.lang.IllegalArgumentException: Cannot format given Object as a Date

如果我提交表单并且表单在验证期间发现错误(与此Calendar字段相关或无关),则只有在验证完成后才会出现问题,并且我添加此消息是否会引发此异常。

我如何生成日历的代码如下,但我不确定为什么它只会在这种情况下抛出错误,而不是其他任何错误。

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);
    }
}

0 个答案:

没有答案