简体   繁体   English

不调用/调用InitBinder

[英]InitBinder is not called/Invoked

I have radio button on JSP Page. 我在JSP页面上有单选按钮。

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

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

List : List of person Objects Obj : 列表:人员列表对象对象:

Class obj{
     Person person;
     getter/setters
}

In that JSP, i have to append person when particular radio button selected. 在该JSP中,当选择特定的单选按钮时,我必须追加人员。

On Controller side 在控制器端

    @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);
        }
    });
}

Here i am using initbinder,because i am getting person object string from jsp...So i am getting binding exception that can not convert from String to Person . 在这里我正在使用initbinder,因为我是从jsp获取人员对象字符串的。所以,我正在获取无法从String转换为Person的绑定异常。

InitBinder is called before when binding data to modelAttribute.Hence in initbinder i will conver string to Person object. 将数据绑定到modelAttribute之前,将调用InitBinder。因此,在initbinder中,我会将字符串转换为Person对象。

Here The main problem is That My InitBinder in Not called/Invoked . 此处的主要问题是My InitBinder在“未调用/已调用”中 please give me solution. 请给我解决方案。

Thank you. 谢谢。

Please check whether it is getting called by putting breakpoints or debug statements. 请通过放置断点或调试语句来检查是否正在调用它。

Your model attribute is named "obj". 您的模型属性名为“ obj”。 But in propertyeditor you've used "person" as property path. 但是在属性编辑器中,您已经使用“人”作为属性路径。

Please try using "obj" as propertyPath or remove that parameter and use this signature. 请尝试将“ obj”用作propertyPath或删除该参数并使用此签名。 registerCustomEditor(Class requiredType, PropertyEditor propertyEditor) registerCustomEditor(Class requiredType,PropertyEditor propertyEditor类)

Hope it helps. 希望能帮助到你。

黑暗中的狂野刺杀,是否从org.springframework.web.bind.annotation导入正确的@InitBinder

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM