码迷,mamicode.com
首页 > 编程语言 > 详细

关于spring MVC机制,示例解读

时间:2015-07-14 00:17:54      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

    spring MVC分离了控制器、模型对象。工作过程如下:

        1.Spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。 
        2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller 。
        3.DispatcherServlet请请求提交到目标Controller 。
        4.Controller进行业务逻辑处理后,会返回一个ModelAndView 。
        5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象。 
        6.视图对象负责渲染返回给客户端。 

    springMVC例子解读:

    HelloWorldController代码注释如下:

package cn.training.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import cn.training.UserBean.UserBean;
import cn.training.service.*;
//找到名为HelloWorldController这个类
@Controller("HelloWorldController")
//访问路径
@RequestMapping("/")
//HelloWorldController类
public class HelloWorldController {
   //自动注入标签
    @Autowired
    //声明一个Helloservice变量
    Helloservice helloservice;
    //以GET方式请求访问路径
    @RequestMapping(value = "/", method = RequestMethod.GET)
    //带一个参数的initLogin( )方法
    public String initLogin(Model model) {
     //转到helloWorld。jsp页面
        return "helloWorld";
    }
    //以POST方式访问路径
    @RequestMapping(value="/init",  method=RequestMethod.POST)
    //带两个参数的initLogin2( )方法
    public String initLogin2(UserBean userbean,Model model) {
      //声明一个UserBean变量,并调用Helloservice类中的searchservice()方法,将得到的值赋给userbean1
      UserBean userbean1= helloservice.searchservice(userbean);
      //将userbean更改设置为userbean1
       model.addAttribute("userbean",userbean1);
       //跳转到login,jsp页面
       return "login";
        
    }
}

        Helloservice页面注释如下:

package cn.training.service;
import org.springframework.stereotype.Service;
import cn.training.UserBean.UserBean;
//@Service用于标注业务层组件
@Service
//Helloservice类
public class Helloservice {
 public UserBean searchservice(UserBean fim){
 //将fim的userid设置为test
 fim.setUserId("test");
 
 return fim;
}
}

    UserBean.java、helloWorld.jsp、login.jsp、web.xml、springMVC-servlet.xml等页面内容省略。

    注意事项:

    当创建一个 Controller ,需直接或间接地实现 org.springframework.web.servlet.mvc.Controller 接口。

    @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

        @RequestMapping     RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。RequestMapping注解有六个属性,下面我们把它分成三类进行说明。

1. value method

value     指定请求的实际地址,指定的地址可以是URI Template 模式;

method  指定请求的method类型, GETPOSTPUTDELETE等; 

2. consumesproduces

consumes 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

3. paramsheaders

params 指定request中必须包含某些参数值是,才让该方法处理。

headers 指定request中必须包含某些指定的header值,才能让该方法处理请求。

    ${userbean.userId}表示取出userbean中的userId。

<form action="init" method="POST">
<input name="jsd" type="text"/>
<button name="submit" type="submit">login</button>
</form>

通过这段代码。我知道了XML文件中有很多组建和控件可以使用,例如这儿就用到了文本框和提交按钮。

    在这样的项目里,涉及的页面比较多,应注意名称的规范性与一致性,以避免低级的错误。

    

关于spring MVC机制,示例解读

标签:

原文地址:http://my.oschina.net/u/2411774/blog/478106

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!