SpringMVC如何获取表单数据(radio和checkbox)

获取表单数据是Web应用程序中最常见的任务之一。SpringMVC在处理表单数据方面提供了许多便捷的方法,包括获取单选框和复选框的值。

获取表单数据是Web应用程序中最常见的任务之一。SpringMVC在处理表单数据方面提供了许多便捷的方法,包括获取单选框和复选框的值。

获取单选框的值

客户端可以在多个单选按钮之间进行选择。一组单选按钮被视为一组,必须具有相同的名称。SpringMVC在控制器中提供了几种方法来获取选定的单选按钮值。下面是两条示例说明:

示例1:使用@RequestParam接收单选框的值

可以使用@RequestParam注解,将前端表单提交的单选框的值绑定到控制器方法的参数上,示例代码如下:

@RequestMapping("/radio")
public String getRadio(@RequestParam("radioBtn")String radioBtn,Model model){
    model.addAttribute("result", "你选择的是:"+radioBtn);
    return "result";
}

RequestParam注解中的参数"radioBtn"就是前端表单对应的字段名称,这里获取到的是单选框的value值。

示例2:使用ModelAttribute注解获取单选框的值

另一种方法是使用ModelAttribute注解,示例代码如下所示:

@ModelAttribute("radioBtn")
public String getRadio(){
    return "defaultValue";
}
@RequestMapping("/radio")
public String getRadioValue(ModelMap model,@ModelAttribute("radioBtn")String radioBtn){
    model.addAttribute("result","你选择的是 "+radioBtn);
    return "result";
}

在这个例子中,使用ModelAttribute注解的getRadio()方法返回了默认的值defaultValue,然后getRadioValue()方法中可以通过ModelAttribute注解快速获取并使用默认值。

获取复选框的值

在SpringMVC中,复选框值的获取通常需要使用数组或者List类型的参数。SpringMVC会自动将前端表单提交的勾选框的值绑定到数组或者List类型的参数上。下面是两条示例说明:

示例1:使用@RequestParam接收复选框的值

通过使用@RequestParam注解,可以将前端表单提交的复选框的值绑定到控制器方法的参数中,示例代码如下所示:

@RequestMapping("/checkbox")
public String getCheckBox(@RequestParam(value="hobby", required=false) String[] hobby, Model model){
    if(hobby != null){
        model.addAttribute("result", "您选择的爱好是: " + Arrays.asList(hobby).toString());
    }
    else{
        model.addAttribute("result", "您没有选择爱好.");
    }
    return "result";
}

@RequestParam注解中的参数"value"指定前端表单对应的字段名称,这里获取到的是勾选框中选中的所有value值。

示例2:使用ModelAttribute注解获取复选框的值

使用ModelAttribute注解同样可以获取前端表单提交的复选框中勾选的值,示例代码如下所示:

@ModelAttribute("hobbies")
public List<String> getHobbies(){
    List<String> hobbies = new ArrayList<String>();
    hobbies.add("篮球");
    hobbies.add("足球");
    hobbies.add("羽毛球");
    hobbies.add("游泳");
    return hobbies;
}
@RequestMapping("/checkbox")
public String getCheckBoxValue(Model model,@RequestParam(value="selectedHobbies",required=false) List<String> selectedHobbies){
    if(selectedHobbies != null){
        model.addAttribute("result","你选择的爱好是:"+selectedHobbies.toString());
    }else{
        model.addAttribute("result","您未选择任何爱好");
    }
    return "result";
}

在这个例子中,使用ModelAttribute注解的getHobies()方法返回了所有可选爱好的List对象,然后获取已选择的复选框的值时,使用@RequestParam注解并指定参数值为"selectedHobbies",即可获取到所有勾选框中被选中的值。

本文标题为:SpringMVC如何获取表单数据(radio和checkbox)

基础教程推荐