吴川手机网站建设公司,网站保定网站建设多少钱,wordpress登录验证码,自贡企业网站建设文章目录 一、Spring MVC 接收请求参数二、Spring MVC 数据回显三、SpringMVC 返回中文乱码问题 一、Spring MVC 接收请求参数 客户端或者前端通过 URL 请求传递过来的参数#xff0c;在控制器中如何接收#xff1f; 1、当参数和 Controller 中的方法参数一致时#xff0c;无… 文章目录 一、Spring MVC 接收请求参数二、Spring MVC 数据回显三、SpringMVC 返回中文乱码问题 一、Spring MVC 接收请求参数 客户端或者前端通过 URL 请求传递过来的参数在控制器中如何接收 1、当参数和 Controller 中的方法参数一致时无需做处理可以正常接收 代码示例以及对应 URL http://localhost:8080/user?namesys RequestMapping(/user)public String getUser(Model model, String name) {model.addAttribute(msg, name为 name);return test;}测试结果 2、当参数和 Controller 中的方法参数不一致时需要通过 RequestParam 控制 代码示例以及对应 URL http://localhost:8080/user2?usernamesys RequestMapping(/user2)public String getUser2(Model model, RequestParam(username) String name) {model.addAttribute(msg, name为 name);return test;}测试结果 3、当提交的参数与实体类中的属性一致可以直接使用实体类接收即可 代码示例以及对应 URL http://localhost:8080/user?namesysage99 实体类 Data
public class User {private String id;private String name;private int age;
}controller RequestMapping(/user3)
public String getUser3(Model model, User user) {model.addAttribute(msg, id为 user.getId()\n\tname为 user.getName()\n\tage为 user.getAge());return test;
}测试结果 注如果客户端传递的参数和实体类属性不一致则默认给个 null 二、Spring MVC 数据回显 数据显示到前端有三种方式ModelAndView、ModelMap、Model 通过 ModelAndView 将数据返回给前端需要搭配 Servlet API 使用。ModelAndView指模型和视图的集合既包含模型 又包含视图ModelAndView其实就是两个作用一个是指定返回页面另一个是在返回页面的同时添加属性也就是返回的数据 public class ModelAndViewController implements Controller {public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse ref) throws Exception {//返回一个模型视图对象ModelAndView mv new ModelAndView();// 获取要返回给客户端的数据这里默认给个 ModelAndViewController mv.addObject(msg,ModelAndViewController );// 获取视图名称mv.setViewName(test);// 返回模型和视图return mv;}
}通过 ModelMap 将数据返回给前端。ModelMap继承LinkedHashMapspring框架自动创建实例并作为controller的入参用户无需自己创建 RequestMapping(/hello)
public String hello(RequestParam(username) String name, ModelMap model){//封装要显示到视图中的数据//相当于req.setAttribute(name,name);model.addAttribute(name,name);// 返回视图名称return test;
}通过 Model 将数据返回给前端。Model是一个接口它的实现类为ExtendedModelMap继承ModelMap类 RequestMapping(/hello)
public String hello(RequestParam(username) String name, Model model){//封装要显示到视图中的数据//相当于req.setAttribute(name,name);model.addAttribute(msg,name);// 返回视图名称return test;
}三、SpringMVC 返回中文乱码问题 方法一在 web.xml 文件中对乱码问题进行了配置配置代码如下 !-- 配置过滤器 --
filterfilter-nameencodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueUTF-8/param-value/init-param
/filter
filter-mappingfilter-nameencodingFilter/filter-nameurl-pattern/*/url-pattern
/filter-mapping方法二在 RequestMapping 中添加 produces 参数但是有着较大的局限性 局限性一需要在每一个接口中都加上 produces“text/json;charsetutf-8” 这段代码太过麻烦且代码质量不高 局限性二不知有着 text/json还有着其他不同种类的数据而配置只能选一种 方法三 在Spring-mvc.xml配置文件统一处理 在 mvc:annotation-driven/ 中添加如下内容 mvc:message-convertersbean classorg.springframework.http.converter.StringHttpMessageConverterproperty namesupportedMediaTypeslistvalueapplication/json;charsetUTF-8/valuevaluetext/plain;charsetUTF-8/valuevaluetext/html;charsetUTF-8/valuevaluetext/json;charsetUTF-8/value/list/property/bean
/mvc:message-converters