SpringMVC的基础知识整理(3)Controller层注解及开发

Controller层注解

    @Controller: 控制器(注入服务)
    @Service: 服务(注入dao)
    @Repository:(实现dao访问)
    @Component:
    以上4个注解都是实例化bean的功能,相当于配置文件中的<bean id="" class=""/>,后期spring可能会扩展其他功能。

    @RequestMapping:
        url映射
            定义controller方法对应的url,进行处理器映射使用。
        窄化请求映射
            在controller上加上该注解,方便对url分类管理。
        限制http请求方法
            出于安全性考虑,对http的链接进行方法限制。
            如果限制请求为post方法,进行get请求就会报错:

@RequestMapping(value = "/editItems", method = { RequestMethod.POST,RequestMethod.GET })

Controller方法的返回值
    1、返回ModelAndView

        需要方法结束时,定义ModelAndView,将model和view分别进行设置。

ModelAndView modelAndView = new ModelAndView();
            // 相当 于request的setAttribut,在jsp页面中通过itemsList取数据
            modelAndView.addObject("itemsList", itemsList);
            // 指定视图
            // 如果在视图解析器中没有配置jsp路径的前缀和jsp路径的后缀,则为
            modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
            // 配置了jsp路径的前后缀,则为
            modelAndView.setViewName("items/itemsList");

    2、返回string
        如果controller方法返回string,

        (1)表示返回逻辑视图名。
            真正视图(jsp路径)=前缀+逻辑视图名+后缀

@RequestMapping(value = "/editItems", method = { RequestMethod.POST,RequestMethod.GET })
            public String editItems(Model model)throws Exception {
                // 调用service根据商品id查询商品信息
                ItemsCustom itemsCustom = itemsService.findItemsById(1);
                model.addAttribute("items", itemsCustom);
                return "items/editItems";
            }

        (2)redirect重定向
        商品修改提交后,重定向到商品查询列表。
        redirect重定向特点:浏览器地址栏中的url会变化。修改提交的request数据无法传到重定向的地址。因为重定向是发送了两次请求(request无法共享)

        return "redirect:/items/queryItems.action";

        (3)forward页面转发
        通过forward进行页面转发,浏览器地址栏url不变,request可以共享。

        return "forward:/items/queryItems.action";

    3、返回void
    在controller方法形参上可以定义request和response,使用request或response指定响应结果:
        (1)使用request转向页面,如下:
        request.getRequestDispatcher("页面路径").forward(request, response);

        request.getRequestDispatcher("/WEB-INF/jsp/items/itemsList.jsp").forward(request, response);

        (2)也可以通过response页面重定向:
        response.sendRedirect("url");

        response.sendRedirect("/WEB-INF/jsp/items/itemsList.jsp");

    也可以通过response指定响应结果,例如响应json数据如下:

response.setCharacterEncoding("utf-8");
        response.setContentType("application/json;charset=utf-8");
        response.getWriter().write("json串");

 

转载于:https://my.oschina.net/oszzq/blog/2961415

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值