SpringMVC
-顾名思义,是一个MVC框架。即可以处理View,Model,controller的一个框架。
基本流程
-View层,发出请求,controller处理逻辑,并调用Model处理Dao层相关操作。
具体实现
配置web.xml中的入口servlet
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springConfig/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
其中的初始参数,contextConfigLocation,指上下文配置文件路径。
PS:dispatcher-servlet.xml主要用来配置springMVC的一些controller的初始化,静态文件的映射策略,视图的配置。
编写controller层,来处理逻辑
@Controller
@RequestMapping("/")
public class IndexController {
@RequestMapping("login")
public ModelAndView index() {
ModelAndView view = new ModelAndView("index");
view.addObject("welcome", "hello");
return view;
}
}
-@controller
-表明这是一个controller,并且会被spring容器进行初始化。需要注意的是,如果使用注解,必须在配置文件中,开启注解扫描。
-@RequestMapping
-请求的映射,就是contestPath后的路径。
-ModelAndView
-springMVC的一个特殊对象,封装了一个带值的视图对象。可以用来对视图进行传参数。并在View层用EL取出来。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h2>Welcome to user SpringMVC</h2>
<h3>your welcome param: ${welcome}</h3>
</body>
</html>
controller层的更多写法
@Controller
@RequestMapping(value = "/employee")
public class EmployeeController {
@Autowired
private IEmployeeService employeeService;
@Autowired
private IDeptService deptService;
@RequestMapping
public ModelAndView index() {
ModelAndView view = new ModelAndView("employee/list");
List<Employee> employees = employeeService.list();
view.addObject("list", employees);
return view;
}
@RequestMapping(method = RequestMethod.POST, value = "/delete/{employeeId}")
@ResponseBody
public String delete(@PathVariable Integer employeeId) {
employeeService.delete(employeeId);
return "success";
}
@RequestMapping(method = RequestMethod.GET, value = "/add")
public ModelAndView add(ModelAndView view) {
view.setViewName("employee/form");
view.addObject("depts", deptService.listAll());
return view;
}
@RequestMapping(method = RequestMethod.GET, value = "/detail/{employeeId}")
public ModelAndView detail(@PathVariable Integer employeeId, ModelAndView view) {
view.setViewName("employee/form");
view.addObject("employee", employeeService.getById(employeeId));
view.addObject("depts", deptService.listAll());
return view;
}
@RequestMapping(method = RequestMethod.POST, value = "/update")
public String add(Employee employee) {
if(employee.getDept().getId() == null) {
employee.setDept(null);
}
employeeService.saveOrUpdate(employee);
return "redirect:/employee/";
}
}