Java 获取方法Spring注释控制器时添加错误
我有这样一个场景: 我向用户显示资产列表。 用户选择一项资产,然后单击“添加项目” 在我的requestmapping上,在GET操作期间。我使用服务类检查数据库中是否仍然存在此资产 如果没有,则应通过消息通知用户。我使用表单:error标签 我的问题是,在方法签名中添加错误对象时,出现以下错误: 在没有前面的模型属性的情况下声明了错误/BindingResult参数 代码:Java 获取方法Spring注释控制器时添加错误,java,spring,spring-mvc,annotations,Java,Spring,Spring Mvc,Annotations,我有这样一个场景: 我向用户显示资产列表。 用户选择一项资产,然后单击“添加项目” 在我的requestmapping上,在GET操作期间。我使用服务类检查数据库中是否仍然存在此资产 如果没有,则应通过消息通知用户。我使用表单:error标签 我的问题是,在方法签名中添加错误对象时,出现以下错误: 在没有前面的模型属性的情况下声明了错误/BindingResult参数 代码: SpringMVC需要将一系列错误与模型上的某些对象相关联,因此标记(如)将根据路径属性对应于模型对象。在本例中,它通过
SpringMVC需要将一系列错误与模型上的某些对象相关联,因此标记(如)将根据路径属性对应于模型对象。在本例中,它通过直接在控制器方法中的ModelMap参数之后查找Errors参数来实现 尝试交换error和model方法参数,看看它是否清除了在前面没有模型属性error的情况下声明的Errors/BindingResult参数 更改此项:
public String setupForm(@RequestParam("assetID") Long assetID,
@ModelAttribute("assetItemDetail") AssetItemVo voAssetData, Errors error,
ModelMap model)
为此:
public String setupForm(@RequestParam("assetID") Long assetID,
@ModelAttribute("assetItemDetail") AssetItemVo voAssetData, ModelMap model,
Errors error)
如果要将BindingResult与方法签名中不存在的模型属性关联,可以手动执行此操作:
BindingResult result = new Errors();
...
model.put(BindingResult.MODEL_KEY_PREFIX + "assetItemDetail", result);
model.put("assetItemDetail", voAsset);
public String setupForm(@RequestParam("assetID") Long assetID,
@ModelAttribute("assetItemDetail") AssetItemVo voAssetData, Errors error,
ModelMap model)
public String setupForm(@RequestParam("assetID") Long assetID,
@ModelAttribute("assetItemDetail") AssetItemVo voAssetData, ModelMap model,
Errors error)
BindingResult result = new Errors();
...
model.put(BindingResult.MODEL_KEY_PREFIX + "assetItemDetail", result);
model.put("assetItemDetail", voAsset);