SpringMVC学习之路(一)

本文介绍了SpringMVC框架的基本概念及其实现过程。包括配置web.xml中的DispatcherServlet、创建Controller处理逻辑并返回ModelAndView对象,以及如何通过视图展示数据。

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/";
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值