2017-01-05 29 views
1

我用了春天和weblogic, 我有這樣的方法:ResponseEntity返回字符串,而不是XML類型在春季啓動

@RequestMapping(value = "/all/{parentId}", method = RequestMethod.GET) 
@ResponseBody 
public ResponseEntity<String> getAll(@PathVariable int parentId) { 
    StringBuffer returnValue = new StringBuffer(""); 
    Power power = iPowerService.loadByEntityId(parentId); 
    makeTree(power, returnValue); 
    HttpHeaders responseHeaders = new HttpHeaders(); 
    responseHeaders.add("Content-Type", "text/html; charset=UTF-8"); 
    return new ResponseEntity<String>(returnValue.toString(), responseHeaders, HttpStatus.CREATED); 
} 

以上方法使XML格式的一棵樹,把它作爲響應客戶端像這樣:

<201 Created, 
<item text="primary" id="740167402" im0="Mehvar_V.png" 
    im1="Mehvar_V.png" im2="Mehvar_V.png" isVirtual="true"> 
    <item text="..." im0="leaf.gif" id="t740167402" /> 
</item> 
<item 
    text="fff" 
    id="740168675" im0="Mehvar_V.png" im1="Mehvar_V.png" im2="Mehvar_V.png" 
    isVirtual="true"> 
    <item text="..." im0="leaf.gif" id="t740168675" /> 
</item> 
<item text="mmmehdi" id="12" im0="Mehvar_V.png" im1="Mehvar_V.png" 
    im2="Mehvar_V.png" isVirtual="true"> 
    <item text="..." im0="leaf.gif" id="t12" /> 
</item> 
<item text="province" id="123" im0="Mehvar_V.png" im1="Mehvar_V.png" 
    im2="Mehvar_V.png" isVirtual="true"> 
    <item text="..." im0="leaf.gif" id="t123" /> 
</item> 
<item text="power" id="1234" im0="Mehvar_V.png" im1="Mehvar_V.png" 
    im2="Mehvar_V.png" isVirtual="true"> 
    <item text="..." im0="leaf.gif" id="t1234" /> 
</item> 
,{Content-Type=[text/html; charset=UTF-8]}> 

和客戶端將此響應轉換爲樹並顯示它。
它已經成功運行
當我遷移到春季啓動這個方法的響應轉換成字符串像這樣:

"<item text="primary" id="740167402" im0="Mehvar_V.png" 
    im1="Mehvar_V.png" im2="Mehvar_V.png" isVirtual="true"> 
    <item text="..." im0="leaf.gif" id="t740167402" /> 
</item> 
<item 
    text="fff" 
    id="740168675" im0="Mehvar_V.png" im1="Mehvar_V.png" im2="Mehvar_V.png" 
    isVirtual="true"> 
    <item text="..." im0="leaf.gif" id="t740168675" /> 
</item> 
<item text="mmmehdi" id="12" im0="Mehvar_V.png" im1="Mehvar_V.png" 
    im2="Mehvar_V.png" isVirtual="true"> 
    <item text="..." im0="leaf.gif" id="t12" /> 
</item> 
<item text="province" id="123" im0="Mehvar_V.png" im1="Mehvar_V.png" 
    im2="Mehvar_V.png" isVirtual="true"> 
    <item text="..." im0="leaf.gif" id="t123" /> 
</item> 
<item text="power" id="1234" im0="Mehvar_V.png" im1="Mehvar_V.png" 
    im2="Mehvar_V.png" isVirtual="true"> 
    <item text="..." im0="leaf.gif" id="t1234" /> 
</item>" 

正如你看到的"" SURROUND我的輸出

什麼和爲什麼發生?
爲什麼我的迴應將字符串發送給客戶端。
我想輸出相同的,因爲它成功地

+1

嘗試添加'產生= { 「應用程序/ XML」, 「文本/ XML」}'你'@ RequestMapping' – Patrick

回答

0

曾與@ResponseBody,你不必包裝在一個新的ResponseEntity你的迴應,你可以探微做到這一點:

@RequestMapping(value = "/all/{parentId}", method = RequestMethod.GET) 
@ResponseBody 
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) 
public String getAll(@PathVariable int parentId) { 
    StringBuffer returnValue = new StringBuffer(""); 
    ... 
    return returnValue.toString() 
} 

或者你可以中庸之道刪除響應正文:

@RequestMapping(value = "/all/{parentId}", method = RequestMethod.GET) 
public ResponseEntity<String> getAll(@PathVariable int parentId) {