Springmvc学习之接受表单复合数据
Springmvc学习之接受表单复合数据
`@Controller("formController") public class FormController { @PostMapping("/apply") @ResponseBody public String apply(@RequestParam(value="n",defaultValue = "ANAN")String name,String course,Integer[] purpose) { System.out.println(name); System.out.println(course); for (Integer p:purpose) { System.out.println(p); } return "success"; }
}
`
这里解释一下几个标签的作用:
- @controller:将当前类标为controller层。
controller层负责具体的业务模块流程的控制,在此层要调用service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里进行,针对具体的业务流程,会有不同的控制器。我们具体的设计过程可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块。这样不仅使程序结构变得清晰,也大大减少了代码量。 - @PostMapping:
Spring MVC新特性
提供了对Restful风格的支持
GetMapping,处理get请求
@PostMapping,处理post请求
@PutMapping,处理put请求
@DeleteMapping,处理delete请求
("/apply")里边的内容是路径名字,前端控制器通过解析浏览器传来的URL地址,对应到响应的Mapping下的函数进行执行。 - @ResponseBody :
注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。 - @RequestParam(value="n",defaultValue = "ANAN")
注解表示的是,value中表示的是寻找“n”这个标签,然后如果没有n的话,就执行这个默认值“ANAN”。此外这个标签还有一个非常重要的作用就是要使用List集合的时候,一定要在集合前面添加@RequestParam这个标签
使用Map接受数据
在接受表单中的数据时,可以使用Map集合一下把表单中的数据接收到,但是这里有一个非常容易犯错的地方就是,在接受表单中的复合数据时候,会出现数据丢失的现象,因为一个key只能有一个value。复合数据的时候,只能接受到复合数据中的一个。