Ajax形式的國際化處理

Ajax形式的國際化響應提示


前端渲染形式的國際化不再說,現在實現一個 ajax形式的國際化,基於 jackson 的自定義序列化

// 實現序列化接口
public class I18nMessageSerializer extends com.fasterxml.jackson.databind.ser.std.StdSerializer<String> {

    public I18nMessageSerializer() {
        super(String.class);
    }

    protected I18nMessageSerializer(Class<String> t) {
        super(t);
    }

    @Override
    public Class<String> handledType() {
        return String.class;
    }

    @Override
    public void serialize(String s, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
    	// 這裏我假設以 @i18n. 開頭的都是需要國際化的,規則自己定義
    	// 至於 當前環境是什麼,可以通過session的形式進行保存(或者你想到的任何形式),然後在這裏進行處理
    	// Session.getAttribute("xxxx")
        if (StringUtils.isEmpty(s) || !s.startsWith("@i18n.")) {
            jsonGenerator.writeString(s);
        } else {
            String s1 = s.substring(6);
        }

    }
}
//然後在你需要的國際化字段 進行聲明處理
public class Response {
    // 狀態碼
    private Status status;
    // 提示消息 使用自定義的序列化
    @JsonSerialize(using = I18nMessageSerializer.class)
    private String message;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章