【问题标题】:sending a list of checked boxes from view to controller in play framework java在play框架java中将复选框列表从视图发送到控制器
【发布时间】:2023-03-10 20:06:01
【问题描述】:

我有一个带有复选框的视图

 @for((jc)<-jobcategoryList) {

           <input type="checkbox" name="jobcategory.id" value="@jc.id">@jc.name<br>
                                }

我只想将此选中复选框列表发送到我的控制器。但是这样做

public class JobAdController extends Controller {
    public static Result save() {


            Form<Jobads> jobadsFormData = jobadsForm.bindFromRequest();



            if (jobadsFormData.hasErrors()) {

          System.out.println("Error in form");
                 return badRequest();


            } else {

            Jobads jads= jobadsFormData.get();
            List<Jobcategories> jadsList= jads.getJobcategory();

            System.out.print("\nLength is:"+jadsList.size());// always prints Length is:0





          }}
}

其中 Jobads 和 Jobcategory 是我的模型。

我的 Jabads.java 模型

public class Jobads extends Model {


    @ManyToMany

    private List<Jobcategories> jobcategories;
}

我的问题是,每当我提交带有复选框的视图表单时(如上所示)。我的控制台打印长度为:0

当我试图改变我的观点时

@for((jc,index)<-jobcategoryList.zipWithIndex) {

               <input type="checkbox" name="jobcategory[index]" value="@jc">@jc.name<br>
                                    }

并向控制器提交我的表单,在控制器的第一行生成 [[NumberFormatException: For input string: "index"]]。

如何将此复选框发送到我的控制器。

谢谢

【问题讨论】:

    标签: java list model-view-controller checkbox playframework


    【解决方案1】:

    用途:

    @for(jc <- jobcategoryList) {
        <input type="checkbox" name="jobcategories[]" value="@jc.id">@jc.name<br>
    }
    

    @for((jc,index) <- jobcategoryList.zipWithIndex) {
        <input type="checkbox" name="jobcategories[@index]" value="@jc.id">@jc.name<br>
    }
    

    在你的表单类中:

    public List<Long> jobcategories;
    

    【讨论】:

    • Jobads jads= jobadsFormData.get(); 行给予[IllegalStateException: No value]
    • 我猜不出你自己的代码有什么问题,用调试器找bug
    猜你喜欢
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    相关资源
    最近更新 更多