在Spring Boot中努力获取具有相同名称的多个输入字段值

时间:2018-12-10 06:27:01

标签: java spring spring-boot model-view-controller

My input field

Some JS to populate phone number fields

In my Controller only first input is showing?

我的问题是如何从Name =“ phone”字段中获取所有值

Should get these values, only getting first value

  

JS

<script>
    $(function(){

        $(document.body).on('click', '.changeType' ,function(){
            $(this).closest('.phone-input').find('.type-text').text($(this).text());
            $(this).closest('.phone-input').find('.type-input').val($(this).data('type-value'));
        });

        $(document.body).on('click', '.btn-remove-phone' ,function(){
            $(this).closest('.phone-input').remove();
        });


        $('.btn-add-phone').click(function(){

            var index = $('.phone-input').length + 1;

            $('.phone-list').append(''+
                '<div class="input-group phone-input">'+
                '<input type="number" name="phone" class="form-control" placeholder="(999) 999 9999" />'+
                '<span class="input-group-btn">'+
                '<button class="btn btn-danger btn-remove-phone" type="button"><span class="glyphicon glyphicon-remove"></span></button>'+
                '</span>'+
                '</div>'
            );

        });

    });</script>
  

HTML

<div class="col-sm-10">

                        <div class="phone-list">

                            <div class="input-group phone-input">
                                    <span class="input-group-btn">
                                    </span>
                                <input type="number" name="phone" class="form-control" placeholder="(999) 999 9999"  required=""/>
                            </div>

                        </div>


                        <button type="button" class="btn btn-success btn-sm btn-block btn-add-phone"><span class="glyphicon glyphicon-plus"></span> Add Phone</button>
                    </div>
  

控制器

   @PostMapping("/applicant")
   public String saveApplicantToDb(
       @Valid @ModelAttribute Applicant applicant, 
       @RequestParam("phone") int[] phone
   ) {
        if (phone!= null)
        System.out.println(phone.length);

        _applicantRepository.save(applicant);

        return "applicant";
    }

2 个答案:

答案 0 :(得分:0)

您正在使用具有正确名称“ phone”的多个输入数字字段,这是正确的,这没有问题,它应该反映在输入@Param(“ phone”)中,但是您必须确保电话输入的类型必须为整数,例如您的占位符完全不正确(999)9999999。另外,新添加的电话也不是整数。因此,请确保它们是整数

答案 1 :(得分:0)

问题在于名称应与您的模型属性匹配 但是我从视图中期待数组的int []类型,但是它向我发送了String []类型的数组问题已解决,并且还要确保正确填充输入字段的JS代码[特别是name ='field_name']应该与属性匹配您的模型。在浏览器上检查它->检查并折叠div,然后查看输入字段名称