gpt4 book ai didi

java - InitBinder 未被调用/调用

转载 作者:行者123 更新时间:2023-12-01 18:44:19 24 4
gpt4 key购买 nike

我在 JSP 页面上有单选按钮。

<form:form  modelAttribute="obj" action="save">
<form:radiobuttons path="person" items="${List}"/>

<form:button>Save</form:button>
</form:form>

列表:人员对象列表对象:

Class obj{
Person person;
getter/setters
}

在该 JSP 中,当选择特定单选按钮时,我必须附加人员。

在 Controller 端

    @RequestMapping(value = "/save", method = RequestMethod.POST)
public String postProcess(@ModelAttribute("obj") Obj obj,BindingResult error) {

//processing
return "anotherJsp";
}


@InitBinder
public void initBinder(WebDataBinder binder, Locale locale, HttpServletRequest request) {
binder.registerCustomEditor(Obj.class,"person", new PropertyEditorSupport() {
@Override
public void setAsText(String text) {
//processing for conversion of person object String to Person Object
setValue(text);
}
});
}

这里我使用initbinder,因为我从jsp获取person对象字符串...所以我得到绑定(bind)异常无法从String转换为Person

InitBinder在将数据绑定(bind)到modelAttribute之前被调用。因此在initbinder中我将字符串转换为Person对象。

这里的主要问题是我的InitBinder未调用/调用。请给我解决方案。

谢谢。

最佳答案

请检查是否通过设置断点或调试语句来调用。

您的模型属性名为“obj”。但在 propertyeditor 中,您使用“person”作为属性路径。

请尝试使用“obj”作为 propertyPath 或删除该参数并使用此签名。 registerCustomEditor(Class requiredType, PropertyEditor propertyEditor)

希望有帮助。

关于java - InitBinder 未被调用/调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18502560/

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