對我有這樣的場景:添加錯誤GET方法春季註解控制器
- 我顯示資產的用戶列表。
- 用戶選擇一項資產,然後單擊添加項目
- 在我的請求映射中,在GET操作期間。我使用服務類來檢查此資產是否確實存在於DB中
- 如果不是,則應通過消息通知用戶。我用的形式:錯誤標籤
我的問題是,當我在方法簽名中添加了錯誤的對象,我得到這個錯誤:
Errors/BindingResult argument declared without preceding model attribute
代碼:
@RequestMapping(value = "/addItemsToAsset.htm", method = RequestMethod.GET)
public String setupForm(@RequestParam("assetID") Long assetID,
Errors error, ModelMap model) {
AssetItemVo voAsset = null;
if (assetID != null && assetID != 0) {
//Get data for asset from DB using assetID
List<AssetDraftTempVo> lstDraft = service.getAssetDraftByLngID(assetID);
if (lstDraft.size() == 0) {
voAsset = new AssetItemVo();
// I wanted to add validation here. If no data for asset id is found, I would like to add an error to the error object
error.reject("123","Unable to find info for the asset in the database.");
} else {
AssetDraftTempVo voDraft = lstDraft.get(0);
voAsset = new AssetItemVo();
voAsset.setStrPlant(voDraft.getStrPlant());
.
. /*other DTO property here*/
.
}
}
model.put("assetItemDetail", voAsset);
return "additemstoasset";
}
我的目標在顯示錶單的過程中,我想立即填充錯誤對象(如果有錯誤)
這是我的表單,爲了清晰起見。
<form:form modelAttribute="assetItemDetail" method="post">
<div id="error_paragraph">
<form:errors path="*" cssClass="errors" />
</div>
</form:form>
爲了讓過去的錯誤,我手動更改方法簽名,並添加模型屬性,但它仍然無法填充表單:錯誤標籤
@RequestMapping(value = "/addItemsToAsset.htm", method = RequestMethod.GET)
public String setupForm(@RequestParam("assetID") Long assetID,
@ModelAttribute("assetItemDetail") AssetItemVo voAssetData, Errors error,
ModelMap model)