2016-04-22 3 views
0

Übergang auf ODA für meine Java in Xpages. Ich habe eine Klasse für mein PC-Objekt. Etwas funktioniert nicht mit Daten. Ich erhalte die FehlerXpages: Probleme mit OpenNTF ODA Daten

java.lang.IllegalArgumentException: Argument Typenkonflikt

wenn ich versuche, meine Xpage zu speichern, die ein Datum enthält. Ich erhalte nur den Fehler, wenn ich tatsächlich ein Datum eingabe und versuche zu speichern. Der Fehler tritt in dieser Zeile auf:

public DateTime getCheckInDate() { 
    return checkInDate; 
} 

Hier ist der relevante Java-Code.

package com.scoular.model; 

import java.io.Serializable; 
import java.util.HashMap; 

import javax.faces.context.FacesContext; 

import org.openntf.domino.*; 
import org.openntf.domino.utils.Factory; 
import org.openntf.domino.xsp.XspOpenLogUtil; 
import org.openntf.domino.impl.DateTime; 

import com.scoular.cache.PCConfig; 

public class PC implements Serializable { 

    private static final long serialVersionUID = 1L; 

    // Common Fields 
    private String unid; 
    private Boolean newNote; 
    private String unique; 

    // Custom Fields 
    private String status; 
    private String serialNumber; 
    private String model; 
    private String officeLoc; 
    private DateTime checkInDate; 

    public DateTime getCheckInDate() { 
     return checkInDate; 
    } 

    public void setCheckInDate(DateTime checkInDate) { 
     this.checkInDate = checkInDate; 
    } 

Der entsprechende Code auf dem Formular ist wie folgt:

<xc:cc_CommonFormField id="cc_CheckInDate" 
         placeholder="Check In Date" label="Check In Date"> 
         <xp:this.facets> 
          <xp:inputText xp:key="field" 
           id="checkInDate" value="#{PCModel.checkInDate}"> 
           <xp:this.converter> 
            <xp:convertDateTime type="both"> 
            </xp:convertDateTime> 
           </xp:this.converter> 
           <xp:dateTimeHelper></xp:dateTimeHelper> 
          </xp:inputText> 
         </xp:this.facets> 
        </xc:cc_CommonFormField> 

Antwort

3

Sie Datetime nicht in einer Java-Klasse verwenden, ist es ein Datum machen. Am Sie ein Geschäft ein Datum im Dokument speichern, von replaceItemValue („datefield“, dateProperty)

Um die Datetime aus dem Dokument zu erhalten, doc.getItemValue („datefield“, Date.class)

+1

Eines der sehr schönen Dinge an ODA ist, dass Sie vor dem Speichern keine DateTime erstellen müssen - Sie können einfach das Date an replaceItemValue übergeben und es automatisch konvertieren –

+0

Und keine Vektoren mehr verwenden ;-) –

Verwandte Themen