SpringMVC中的Controller方法的(返回值/参数类型)
2021-05-12 05:27
标签:bsp lap 获取 address none 逻辑 factory cti 字符 ModelAndView 存放数据, addObject(),往model(request域)添加数据 ModelAndView 添加逻辑视图名, setViewName(), 经过视图解析器,得到物理视图, 转发到物理视图 a. 逻辑视图名, 经过视图解析器,得到物理视图, 转发 b. redirect:资源路径, 不经过视图解析器,要求这个资源路径写完整的路径: /开头, 表示/项目名 重定向到资源 c. forward:资源路径, 不经过视图解析器,要求这个资源路径写完整的路径: /开头,表示/项目名 转发向到资源 d.响应给前端的字符串,(数据),需要结合@ResponseBody 。。。 需要结合@ResponseBody, 发生的数据,(json) 。。。 controller的@RequestMapping() 前缀+ 方法名, 很少使用 如果我们只是往request域存放数据, 推荐使用Model, Controller类与ServletAPI 解耦 a、基本数据类型 参数名与请求参数名一样,自动进行映射 如果参数名与请求参数名不一样, 使用@RequestParam 来进行映射 b、参数是java对象,是一个pojo对象 案例添加用户:Pojo对象的属性名与请求参数的name一样, 自动映射 前端页面: 1、局部的转换器, @DateTimeFormat(日期格式) 只对某一个属性进行转换 ,只需要在日期类型的属性上添加 2、 全局的转换器, 对整个项目的所有的date类型进行转换 第一步: 编写一个转换器类, 实现Converter接口 第二步: 在springmvc的配置文件进行配置 对整个项目的Date类型进行转换 c、参数是集合属性 Controller参数写法: 需要封装成一个类, 作为这个类的属性 UserVo类: 前端页面:name="users[0].password" UserVo中的users属性,list数组,里面的对象下标从0开始,可以使用js赋值,以下页面作为显示效果 SpringMVC中的Controller方法的(返回值/参数类型) 标签:bsp lap 获取 address none 逻辑 factory cti 字符 原文地址:https://www.cnblogs.com/64Byte/p/13143944.html一. Controller方法的返回值:
1、 返回的ModelAndView
@RequestMapping("/getUser.action")
public ModelAndView getUser(@RequestParam(name="userId",required = true)Integer id) throws Exception{
System.out.println("id="+id);
ModelAndView modelAndView = new ModelAndView();
User user = userService.queryOne(id);
modelAndView.addObject("user", user);
modelAndView.setViewName("userinfo");
return modelAndView;
}
2、 String类型, 返回的视图
@RequestMapping("/index.action")
public String toIndex() {
return "index";
@RequestMapping("/index.action")
public String toIndex() {
//重定向到index.jsp, 完整的路径
return "redirect:/jsp/index.jsp";
@RequestMapping("/index.action")
public String toIndex() {
return "redirect:/user/getUser.action?userId=2";
3、Java对象
4、 void, 默认逻辑视图名
二. Controller方法的参数类型
1、直接注入Servlet API相关的类
//使用Servlet API 对象
@RequestMapping("/fun2.action")
public String fun2(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
System.out.println("fun2().....");
request.setAttribute("hello", "request_hello");
session.setAttribute("hello", "session_hello");
Cookie cookie = new Cookie("haha","xixi");
//把cookie保存客户端
response.addCookie(cookie);
return "hello";
}
2、 Model/ModelMap 往model存放/取数据, request域
//推荐写法
@RequestMapping("/fun3.action")
public String fun3(Model model) {
System.out.println("fun3().....");
// SpringMVC 框架帮我们把model中的数据, 一个一个添加到request域
// Model 不能替换Request对象,
model.addAttribute("hello","model_hello");
model.addAttribute("xx", 123);
return "hello";
}
3、 接收请求参数
@RequestMapping(value="/addUser.action",method=RequestMethod.POST)
public String addUser(User user,Model model) {
userService.saveUser(user);
model.addAttribute("msg", "添加成功");
return "msg";
}
body>
h1>添加用户:h1>
form action="${pageContext.request.contextPath }/user/addUser.action" method="post">
用户名:input type="text" name="username" />
hr />
密 码:input type="text" name="password" />
hr />
性 别:input type="radio" name="sex" value="男" id="man"
checked />label for="man">男label> input type="radio" name="sex"
value="女" id="woman" />label for="woman">女label>
hr />
生 日:input type="text" name="brithday" readonly id="brithday"/>
hr />
地 址:input type="text" name="address" />
hr />
button>添加button>
form>
body>
String类型,SpringMVC 不能自动转换为Date类型 , 需要手动配置
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date brithday;
public class MyDateConverter implements Converter
//批量添加 @RequestMapping(value="/bathAddUser.action",method=RequestMethod.POST)
public String bathAddUser(UserVo userVo,Model model) {
model.addAttribute("msg", "添加成功");
return "msg";
}
public class UserVo {
private List
h1>批量添加用户:h1>
form action="${pageContext.request.contextPath }/user/bathAddUser.action" method="post">
h1>第一个用户:h1>
用户名:input type="text" name="users[0].username" />
hr />
密 码:input type="text" name="users[0].password" />
hr />
性 别:input type="radio" name="users[0].sex" value="男" id="man"
checked />label for="man">男label> input type="radio" name="users[0].sex"
value="女" id="woman" />label for="woman">女label>
hr />
生 日:input type="text" name="users[0].brithday" readonly class="brithday"/>
hr />
地 址:input type="text" name="users[0].address" />
hr />
h1>第二个用户:h1>
用户名:input type="text" name="users[1].username" />
hr />
密 码:input type="text" name="users[1].password" />
hr />
性 别:input type="radio" name="users[1].sex" value="男" id="man"
checked />label for="man">男label> input type="radio" name="users[1].sex"
value="女" id="woman" />label for="woman">女label>
hr />
生 日:input type="text" name="users[1].brithday" readonly class="brithday"/>
hr />
地 址:input type="text" name="users[1].address" />
hr />
button>添加button>
文章标题:SpringMVC中的Controller方法的(返回值/参数类型)
文章链接:http://soscw.com/index.php/essay/84543.html