1.数据回写-普通实现方式
1.1 通过Model的addAttribue方式
1.1.1控制层
@RequestMapping("/doLogin")
public String doLogin(String userName,String password,Model model){
System.out.println(userName+":"+password);
model.addAttribute("userName",userName);
model.addAttribute("password",password);
return "forward:/login.jsp";
}
1.1.2 前端页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<html>
<head>
<title>Login页面</title>
</head>
<body>
全局配置信息:${as}<br>
<form action="/user/doLogin2" method="post">
用户名:<input type="text" name="userName" value="${userName}">
密码:<input type="text" name="password" value="${password}">
<input type="submit" value="提交">
</form>
</body>
</html>
2.数据回写-通过Model方式实现
如果使用对象去接受客户端传递的参数,那么对象默认会被自动放到Model中(Request作用域中),在前端页面可以直接使用对象的数据。这样开发效率更快
2.1 Controller
/**
* 如果我们用对象去接收请求传递的参数。
* 那么该对象默认会被保存到Model对象中
* model.addAttribute("userBean",user)
* @param user
* @return
*/
@RequestMapping("/addUser")
public String addUser(UserBean user){
System.out.println(user);
return "/user.jsp";
}
2.2 前端页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/user/addUser" method="post" >
<label>编号:</label>
<input type="text" name="id" value="${userBean.id}">
<br>
<label>用户名:</label>
<input type="text" name="userName" value="${userBean.userName}">
<br>
<input type="submit" value="添加">
</form>
</body>
</html
3.数据回写-@ModelAttribute注解的实现
3.1 修改参数回写变量名
4.配置全局变量名
/**
* 配置全局的信息
* 该类中的其他方法在处理请求后都会绑定本方法的返回信息
* @return
*/
@ModelAttribute("as")
public List<String> getAllAddress(){
System.out.println(Arrays.asList("长沙","中国","云南"));
return Arrays.asList("长沙","中国","云南");
}
5.异常处理
如果我们队系统没有做统一处理,那么当系统抛出异常信息的时候会给客户很不好的体验。
例如:
全局异常处理器处理
@Component
public class MyExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
System.out.println(e.getMessage());
ModelAndView modelAndView=new ModelAndView();
modelAndView.setViewName("/500.jsp");
return modelAndView;
}
}
要记得扫描包
测试