date - 如何解决 "Conversion Error setting value ' 2013-10-2 6' for ' null Converter'"in h :inputText with Date value?

标签 date jsf converter

当我按下插入按钮时,出现标题中指示的错误

Conversion Error setting value '2013-10-26' for 'null Converter'

<h:form id="formulario">
   <h:outputLabel for="date">Plazo</h:outputLabel>
   <h:inputText id="date" required="true" requiredMessage="Campo Obligatorio" value="#{aaaNewDetalles.criterioAaa.plazo}"/>
   <h:message for="date" style="color: red;"/>
   <h:commandButton actionListener="#{aaaNewDetalles.add()}" value="Ingresar"/>
</h:form>

表单由此类管理:

@ManagedBean(name = "aaaNewDetalles")
@ViewScoped
public class aaaNewDetallesBean {
     private CriterioAaaController controller;
     private CriterioAaa criterioAaa;

    @PostConstruct
    public void init(){
          controller= new CriterioAaaController();
          criterioAaa= new CriterioAaa();
    }

    public void add(){
        controller.save(criterioAaa);
    }

    public CriterioAaa getCriterioAaa() {
        return criterioAaa;
    }

    public void setCriterioAaa(CriterioAaa criterioAaa) {
        this.criterioAaa = criterioAaa;
    }
}

CriterioAaa 对象:

import java.sql.Date;

@Table(name = "criterio_aaa", schema = "", catalog = "ciclos_calidad")
@Entity
public class CriterioAaa extends Entidad implements Serializable {

    private Date plazo;

    public Date getPlazo() {
        return plazo;
    }

    public void setPlazo(Date plazo) {
        this.plazo = plazo;
    }

}

最佳答案

您目前的做法有两个问题:

  1. 你应该使用 java.util.Date相反 java.sql.Date . JSF 和其他框架使用这种类型。另外,java.sql.Date延伸java.util.Date但它的目的基本上是供 JDBC 使用。有关此的更多信息:Date vs TimeStamp vs calendar?

  2. <h:inputText>期望一个 String作为值,并且在将数据发送到托管 bean 时,它还期望类字段来自 String键入以及。在这种情况下,您需要使用转换器来告诉 JSF 这 String实际上代表一个Date .为此,您可以使用 <f:convertDateTime>标记组件。

    <h:inputText id="date" required="true" requiredMessage="Campo Obligatorio"
        value="#{aaaNewDetalles.criterioAaa.plazo}">
        <f:convertDateTime pattern="yyyy-MM-dd" />
    </h:inputText>
    

作为建议,您可以使用来自第三方库的日历组件,例如 PrimeFaces 或 RichFaces,它们提供 <p:calendar> <rich:calendar> 组件分别。

关于date - 如何解决 "Conversion Error setting value ' 2013-10-2 6' for ' null Converter'"in h :inputText with Date value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613494/

相关文章:

java - 如何转换时区偏移量为 2 位数的日历?

jsf - 如何为<p:pickList>编写自定义转换器

php - 检查没有前导零的日期表达式 ("d-m") 是否是今天

JQuery 日期范围 : How to trigger an init "selection" event to set default values

javascript - 当 JavaScript 将 disabled 属性更改为 false 时,Commandbutton 不会调用操作

java - 参数值丢失(接缝框架)

c# - 将 int 转换为 char 的最快方法是什么

r - 将季度数据更改为每小时数据

javascript - 如何使用 Moment.js 从日期中删除时间?

ide - 将 Netbeans 中现有的 Visual Web 项目迁移到哪里?