2
我有一個帶有平靜端點/小部件/ {id}的web應用程序。使用SPEL使用spring mvc填充DTO
此端點接受更新dto並呼叫服務層進行更新。
我目前從json主體中提取更新的數據。然而,該服務需要比json主體包含的更多數據,例如當前用戶和來自url的id。
目前我的控制器方法看起來像
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
public WidgetResponseDto update(@RequestBody WidgetUpdateDto widgetUpdate,
@PathVariable("id") Long id,
@CurrentOrganisationId Long organisationId)
和控制器的第一份工作是將這些數據Munge時間到一個單一的對象。然後在應用程序中重複這種模式。
我的問題是:我如何從路徑中取一個參數,或者說SecurityContext並直接在我的dto中使用它。
理想情況下,我希望能夠在業務對象中使用SPEL來填充這些字段,並使用Jackson來填充其他字段。
開箱即用嗎?如果不是我最好寫一個自定義的httpMessageConverter?
謝謝,但這沒有幫助。我希望能夠將路徑變量直接注入到我的WidgetUpdateDto中,而不是控制器方法。 –
你能展示方法身體嗎?或者,你注入請求參數的方式inWidgetUpdateDto if else? – Anclav
目前,我創建了一個新的對象,其中包含來自dto的字段以及請求參數值,並且orgId作爲第一種認爲該方法所做的工作將其轉換爲單個對象。 例如,新的WidgetUpdate(widgetUpdate.name,widgetUpdate.type,id,organisaitonId) 。 或者,我可以在Dto上使用setter來達到同樣的目的。 –