java - Spring MVC 中数字数据不绑定(bind)

标签 java spring spring-mvc jsp data-binding

在开发基于 Spring MVC 的项目时,我尝试将数据从 JSP 绑定(bind)到模型。

虽然字符串数据由于某种原因完美绑定(bind),但数字数据根本没有绑定(bind)。

我已经检查过POJO和JSP中的参数名称是相同的

下面是我的 Controller 代码

@RequestMapping(value = "/investor-signup", method = RequestMethod.GET)
    public String registration(Model model) {
        model.addAttribute("investor", new InvestorRegister());
        return "investor-signup";
    }

    @RequestMapping(value = "/investor-signup", method = RequestMethod.POST)
    public String registration(@ModelAttribute("investor") InvestorRegister investor, BindingResult bindingResult, Model model) {

        System.out.println(investor.getFULL_NAME());
        System.out.println(investor.getMOB_NO());

        investorRegisterService.save(investor);
        return "redirect:/login";
    }

下面是我的 JSP 代码

<form:form method="post" action="investor-signup"
        modelAttribute="investor" id="contact-form"
        style="padding-top: 40px;" role="form" class="formcss" align="left">    

        <div class="controls">    
            <div class="row">    
                <div class="col-md-12">
                    <div class="form-group">    
                        <div class="col-md-2 ">
                            <label for="user_name">Full Name *</label>
                        </div>
                        <div class="col-md-10 p0">
                            <input id="user_name" type="text" name="FULL_NAME" class="form-control" required="required" data-error="Full Name is required.">
                        </div>
                        <div class="help-block with-errors"></div>
                    </div>
                </div>

                <div class="col-md-12">
                    <div class="form-group">
                        <div class="col-md-2">
                            <label for="user_mobile">Mobile *</label>
                        </div>    
                        <div class="col-md-6 ">
                            <input id="user_mobile" type="number" name="MOB_NO" class="form-control" required="required" data-error="Mobile No is required.">
                        </div>
                        <div class="help-block with-errors"></div>
                    </div>
                </div>              

            <div class="col-md-12" align="center">
                <input type="submit" class="btn btn-success btn-send" value="Register">
            </div>    

        </div>    
    </form:form>

下面是我的模型 POJO

@Entity
@Table(name = "InvestorRegister")
public class InvestorRegister {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN")
    @SequenceGenerator(name = "SEQ_GEN", sequenceName = "IID_SEQ")
    @Column(name = "ID")
    private int ID;

    @NotEmpty
    @Column(name = "FULL_NAME")
    private String FULL_NAME;

    @Column(name = "MOB_NO")
    private int MOB_NO;

    public int getID() {
        return ID;
    }    
    public void setID(int iD) {
        ID = iD;
    }

    public String getFULL_NAME() {
        return FULL_NAME;
    }    
    public void setFULL_NAME(String fULL_NAME) {
        FULL_NAME = fULL_NAME;
    }

    public int getMOB_NO() {
        return MOB_NO;
    }    
    public void setMOB_NO(int mOB_NO) {
        MOB_NO = mOB_NO;
    }
}

虽然字符串数据由于某种原因完美绑定(bind),但数字数据根本没有绑定(bind)

我已经检查过POJO和JSP中的参数名称是相同的

感谢任何帮助。

最佳答案

@abhi314,您是否尝试过单独提取字段? 我的意思是,您是否尝试过其中任何一个只是为了检查值是否来自 View 侧?

public String registration(@RequestParam("FULL_NAME") String FULL_NAME, @RequestParam("MOB_NO") int MOB_NO) {
    //check value comes or not 
}

或者

public String registration(@RequestBody InvestorRegister  ir) {
    //check value comes or not 
}

如果您通过这种方式检查是否获得值(value),请告诉我

关于java - Spring MVC 中数字数据不绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55935383/

相关文章:

java - Mapstruct 自定义映射器并自动生成一个

spring - 如何将 csv MimeType 添加到 spring 内容协商?

java - Spring 3如何以属性文件的间隔运行计划任务

java - 列出一个包的所有子包

java - 我应该关闭我的 Spring 3 Controller 的 Writer 参数吗?

java - 正确的代码无法编译?

java - 使用Java解析时如何在文档元素之前保留空格?

java - 如何将命令行参数作为密码传递给gradle项目?

java - 如何使用 JPA 存储库使用同一个表进行联接?

java - 带有 i18n(国际化)和 thymeleaf 的 Spring Boot