2016-07-21 4 views
2

に動作していない私はそうのように、Date変数のgetter/setterメソッドを持っています:カスタムStrutsの型コンバータは

private Date registrationDate; 

@TypeConversion(converter = "org.com.helper.DataHelper") 
public Date getRegistrationDate() { 
    return registrationDate; 
} 

@TypeConversion(converter = "org.com.helper.DataHelper") 
public void setRegistrationDate(Date registrationDate) { 
    this.registrationDate = registrationDate; 
} 

あなたは私が入ってくる文字列を変換するためのカスタムstrutsコンバータを作成しました見ることができるようにDate形式に変換して割り当てます。しかし、それは動作していないようです。ここでDateHelperのためのコードは次のとおりです。

public class DateHelper extends StrutsTypeConverter { 

    private static final DateFormat FORMAT = new SimpleDateFormat("dd-MM-yyyy"); 

    @Override 
    public Object convertFromString(Map arg0, String[] values, Class arg2) { 
      try { 
       System.out.println(values[0]+"called from datahelper"); 

       return FORMAT.parse(values[0]); 
      } catch (Exception e) { 
       throw new TypeConversionException(e.getMessage()); 
      } 
    } 

    @Override 
    public String convertToString(Map arg0, Object value) { 
     try { 
      return FORMAT.format(value); 
     } catch (Exception e) { 
      throw new TypeConversionException(e.getMessage()); 
     } 
    } 

} 

私はフォームデータを取得し、解析するstruts2-jsonプラグインを使用します。このプラグインは自動的にすべての文字列値を割り当てますが、私はDateに問題があります。

これは、フォームからJavaに渡されるデータを取得する方法です。

{"data":{"recordId":"123","registrationDate":"20-07-2016","hisId":"","herId":"","lastNameHe":"Asd","firstNameHe":"Asd","middleNameHe":"Asd","workPlaceHe":"","educationHe"}} 

だから、私の理解によるとregistrationDateを設定するために開始する前に、コードは、ヘルパークラスを呼び出す必要がありますし、dateに文字列を変換しregistrationDateセッターを呼び出す..しかし、動作していないよう...私はさらにlogコールをヘルパーコードに入れましたが、それは日食には現れません。

答えて

2

struts2-json-pluginのように見えますが、デフォルトの型変換は使用されません。 :(あなたはformat性質を持っている@JSONアノテーションを使用することができます日付の書式を設定し

@JSON(format = "dd.MM.yyyy") 
public void setRegistrationDate(Date registrationDate) { 
    this.registrationDate = registrationDate; 
} 

JSONプラグインのドキュメント - 。。私が見Customizing Serialization and Deserialization

+0

ああ、...それはOPであることを奇妙です最初に気付いたのは次のとおりです:)良いQ&A –

+0

@AndreaLigiosええ、jsonのプラグインは本当にリファクタリングされるべきです。 –

+0

「JSONはタイプに解決できません」というメッセージが表示され、インポートできるライブラリがありません。それはjacksonviewを使用するように示唆しています.. – Daler

関連する問題