2015-05-05 35 views
-1

我有下面的類:定製Spring MVC中結合接受控制器的方法豆內部請求參數和的Fileds

public class MyDTO { 
     @NotEmpty  
     private String isKiosk; 
     ... 
} 

和下面的網址:

http://localhost:1234/mvc/controllerUrl?isKiosk=false 

和下列的控制器方法:

@RequestMapping(method = RequestMethod.GET, produces = APPLICATION_JSON) 
@ResponseBody 
public ResponseEntity<List<?>> getRequestSupportKludge(@Valid final MyDTO myDTO, BindingResult bindingResult) { 
    ... 
} 

當我在getRequestSupportKludge方法調試停止我看到myDTO.isKio sk等於null。

我不能改變請求的URL。

我在哪裏可以配置映射爲我的請求參數?

+0

您需要使用'@ PathVariable'?您正在傳遞單個字段,但期望控制器中有一個對象。 '@PathVariable(「isKiosk」)布爾isKiosk' –

+0

@Pramod Karandikar其實我有超過1場。簡化示例 – gstackoverflow

+0

從我的經驗來看,Spring 3.2應該能夠將請求參數映射到java bean;然而,只是猜測,是因爲'isKiosk'被聲明爲'String'而不是'boolean'? –

回答

0

,它正在加入以下粘結劑後:

@InitBinder 
public void initBinder(WebDataBinder binder) { 
    binder.registerCustomEditor(String.class, "isKiosk", new PropertyEditorSupport() { 
     public void setAsText(String name) { 
      setValue(name); 
     } 
    }); 
} 
0

您需要使用@QueryParam獲取在控制器中的值。什麼是綁定到myDTO的Kiosk?當您請求上述網址時,沒有任何內容。如果您使用某種視圖技術和表單來提交數據,那麼將表單變量綁定到對象是很重要的。

另一種方法是可以公開myDTO作爲的ModelAttribute和使用

public xxxx controllerMethod(@ModelAttribute("myDTO") MyDTO myDTO, ...) {} 
相關問題