gpt4 book ai didi

java - Spring - 将 BindingResult 添加到新创建的模型属性

转载 作者:太空狗 更新时间:2023-10-29 22:35:49 28 4
gpt4 key购买 nike

我的任务是 - 通过给定的请求参数创建模型属性,验证它(以相同的方法)并将其全部提供给 View 。

我得到了这个示例代码:

@Controller
class PromotionController {

@RequestMapping("promo")
public String showPromotion(@RequestParam String someRequestParam, Model model) {
//Create the model attribute by request parameters
Promotion promotion = Promotions.get(someRequestParam);

//Add the attribute to the model
model.addAttribute("promotion", promotion);

if (!promotion.validate()) {
BindingResult errors = new BeanPropertyBindingResult(promotion, "promotion");
errors.reject("promotion.invalid");
//TODO: This is the part I don't like
model.put(BindingResult.MODEL_KEY_PREFIX + "promotion", errors);
}
return
}
}

这确实有效,但是使用 MODEL_KEY_PREFIX 和属性名称创建 key 的那部分看起来很老套,对我来说不是 Spring 风格。有没有办法让同样的东西更漂亮?

最佳答案

斯卡夫曼回答了问题却消失了,所以我来替他回答。

绑定(bind)验证的目的是绑定(bind)和验证参数,而不是任意的业务对象。

这意味着,如果我需要对一些用户未提交 的一般数据进行一些自定义验证 - 我需要添加一些自定义变量来保存该状态,而不是使用 BindingResult。

这回答了我对 BindingResult 的所有疑问,因为我认为它必须用作任何类型错误的容器。

再次感谢@Skaffman。

关于java - Spring - 将 BindingResult 添加到新创建的模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3052752/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com