1
我在項目中使用了spring和restlet。Restlet:在過濾器中使用轉換器服務
我添加了一個過濾器,它檢查請求URI是否有效並返回有效URI列表(資源發現機制)。
我必須使用轉換器服務(或conneg服務)根據ACCEPT標頭返回json/xml中的響應。在過濾器中,我獲得響應對象。我創建了一個自定義類的對象,並使用有效的URL填充它。爲了將此對象傳遞給響應,我使用json序列化程序創建對象的字符串表示形式(媒體類型 - json)並設置響應實體。
@Override
protected int beforeHandle(Request request, Response response) {
String relativeUri = request.getResourceRef().getRemainingPart();
if(mappings.containsKey(relativeUri)) {
return Filter.CONTINUE;
}
ArrayList<String> nextLevelURIs = getNextLevelResourcesUri(request);
if(nextLevelURIs == null) {
return Filter.CONTINUE;
}
Items items = getItems(nextLevelURIs);
response.setEntity(serializer.serialize(items), MediaType.APPLICATION_JSON);
return Filter.STOP;
}
爲了實現呢,我有什麼轉換器服務檢查ACCEPT標頭,並創建相應表示(JSON/XML)。但是我已經在其他資源類中使用了轉換器服務。
有沒有什麼辦法在過濾器中使用轉換器服務。如果我設置json字符串表示形式並返回Filter.CONTINUE,則可以將轉換器服務將實體從json表示形式轉換爲xml表示形式,反之亦然,具體取決於ACCEPT標頭?
謝謝。