springMVC 4(11)注解でデータフォーマットを完了しました.
5488 ワード
デマンドインスタンスの導入
実際の開発においては、日付書式、数値フォーマットを変換する必要があるということがよくあります.springでは、データのフォーマット処理は簡単に注釈することによって完成できます.例えば、現在はUser POJO類があります.package come.mvc.model.
AnnotationFormat Factoryインターフェース
これは私たちの注釈を属性タイプと関連付ける.その定義は以下の通りです.
ConversionServiceから引き継ぎ、運転時のタイプ転換とフォーマットサービスインターフェースは、運行期間のタイプ転換とフォーマットのサポートを提供します.その対応は工場種類のFormatting CoversionServiceFactoryBenが存在します.また、カスタム変換器を登録することもできます.その地位は前の文章で述べたCoversionServiceFactoryBenに相当します.私たちはそれをconversion-serviceのプロパティに組み立てる.以下は私たちの構成例です.
一方、フォーマット変換器を単独で使用したい場合は、方法の参照に直接注釈を使用してもよく、次の例を参照してください.
Sun Jan 01 00:00 CST 1995
実際の開発においては、日付書式、数値フォーマットを変換する必要があるということがよくあります.springでは、データのフォーマット処理は簡単に注釈することによって完成できます.例えば、現在はUser POJO類があります.package come.mvc.model.
import java.util.Date;
public class Person {
private String name;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
@NumberFormat(pattern = "#.###k")
private Long salary;
//ignore getter and setter
@Override
public String toString() {
return "Person [name=" + name + ", birthday=" + birthday + ", salary="
+ salary + "]";
}
}
上の2つの注釈を通じて、1995-01-01のようなBirthdatの文字列形式とjava.util.Dateの日付形式を互いに変換し、salaryを15.000 Kのような文字列形式とLong型の15000を相互に変換したいです.私たちの需要を達成するためには、まず次のような知識が必要です.AnnotationFormat Factoryインターフェース
これは私たちの注釈を属性タイプと関連付ける.その定義は以下の通りです.
public interface AnnotationFormatterFactory<A extends Annotation> {
// ( ) A
Set<Class<?>> getFieldTypes();
//
Printer<?> getPrinter(A annotation, Class<?> fieldType);
// ( )
Parser<?> getParser(A annotation, Class<?> fieldType);
}
Formatting CoversionServiceConversionServiceから引き継ぎ、運転時のタイプ転換とフォーマットサービスインターフェースは、運行期間のタイプ転換とフォーマットのサポートを提供します.その対応は工場種類のFormatting CoversionServiceFactoryBenが存在します.また、カスタム変換器を登録することもできます.その地位は前の文章で述べたCoversionServiceFactoryBenに相当します.私たちはそれをconversion-serviceのプロパティに組み立てる.以下は私たちの構成例です.
<!-- :annotation-driven conversion-service -->
<mvc:annotation-driven />
<bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean" id="converters"><!-- converters -->
<property name="converters">
<list>
<bean class="com.mvc.convertor.MyConvertorFactory" />
</list>
</property>
</bean>
登録が終わったら、私達は私達のwebテストを行うことができます.@Controller
public class PersonController {
@RequestMapping("convert")
public void convert( Person person){
System.out.println(person);
}
}
サーバーを起動して、私達は遊覧器の中で訪問します.コンソールの対応出力:http://localhost:8080/springMVC/convert?name=myName&birthday=1995-01-01&salary=5.000k
Person[name=myName、birthday=Sun Jan 01 00:00 CST 1995、salary=5]ここから、要求パラメータからUserオブジェクト属性へのフォーマット変換が成功したことが分かります.一方、フォーマット変換器を単独で使用したい場合は、方法の参照に直接注釈を使用してもよく、次の例を参照してください.
@RequestMapping("convert2")
public void convert2(@DateTimeFormat( pattern = "yyyy-MM-dd") Date date,@NumberFormat( pattern = "#k") Long salary ){
System.out.println(date);
System.out.println(salary);
}
サーバーを起動して、私達は遊覧器の中でアクセスします.http://localhost:8080/springMVC/convert?name=myName&birthday=1995-01-01&salary=50k
コンソール対応出力:Sun Jan 01 00:00 CST 1995