2013-10-30 44 views
0

我需要根據請求參數'type'填充我的pojo類。 所以我有這樣的代碼@ModelAttribute for Rest PUT - 請求參數null

@ModelAttribute 
public void getModelObject(HttpServletRequest request, ModelMap modelMap) { 
    String typeCombo = request.getParameter("type"); 
    System.out.println("typeCombo: " + typeCombo); 
    if (typeCombo != null) { 
     if (condition) { 
      modelMap.addAttribute("modelObj", new ClassB()); //ClassB extends ClassA 
     } else if (another condition) { 
      modelMap.addAttribute("modelObj", new ClassC()); //ClassC extends ClassA 
     } else { 
      System.out.println("no type found"); 
     } 
    } else { 
     System.out.println("typecombo null"); 
    } 

} 

我用上面的方法來獲得創建將被用於添加/更新正確的子類。在「POST」的情況下,上面的工作正常 - 用於創建記錄。但對於「PUT」request.getParameter(「type」)總是返回null。所以爲了編輯,我無法獲得正確的子類。

下面是我的文章,並把請求映射:

@RequestMapping(value = "", method = RequestMethod.POST, headers = "Accept=*/*") 
@ResponseBody 
public String addCredentials(@ModelAttribute("modelObj") Credential credential, 
          ModelMap modelMap) { 
//code 
} 


@RequestMapping(value = "/edit/{id}", method = RequestMethod.PUT, headers = "Accept=*/*") 
@ResponseBody 
public Credential editCredential(@ModelAttribute ("modelObj") Credential credential, @PathVariable long id, ModelMap model) { 

//代碼 }

任何幫助深表感謝。

+0

您需要配置[HttpPutFormContentFilter](http://docs.spring.io/spring/docs/3.2.4.RELEASE/javadoc-api/組織/ springframework的/ WEB /過濾/ HttpPutFormContentFilter.html)。如果您希望能夠檢索屬性(就參數處理而言,PUT與POST不同)。 –

+0

非常感謝您的回覆,任何指向樣本的指針? – Dhamayanthi

回答

0

註冊過濾HttpPutFormContentFilter這樣的:

<beans:bean id="httpPutFormContentFilter" 
class="org.springframework.web.filter.HttpPutFormContentFilter" />