你的位置:首页 > 软件开发 > Java > SpringMVC Controller 介绍

SpringMVC Controller 介绍

发布时间:2016-06-27 11:00:07
以下资源写的很好,感谢原创作者,原创地址,特收藏!一、简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装 ...

以下资源写的很好,感谢原创作者,原创地址,特收藏!

一、简介

         在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。为了先对Controller 有一个初步的印象,以下先定义一个简单的Controller :

Java代码  
@Controllerpublic class MyController {  @RequestMapping ( "/showView" )  public ModelAndView showView() {    ModelAndView modelAndView = new ModelAndView();    modelAndView.setViewName( "viewName" );    modelAndView.addObject( " 需要放到 model 中的属性名称 " , " 对应的属性值,它是一个对象 " );    return modelAndView;  }} 
@Controllerpublic class MyController {  @RequestMapping ( "/showView" )  public ModelAndView showView() {    ModelAndView modelAndView = new ModelAndView();    modelAndView.setViewName( "viewName" );    modelAndView.addObject( " 需要放到 model 中的属性名称 " , " 对应的属性值,它是一个对象 " );    return modelAndView;  }} 
@Controllerpublic class MyController {  @RequestMapping ( "/showView" )  public ModelAndView showView() {    ModelAndView modelAndView = new ModelAndView();    modelAndView.setViewName( "viewName" );    modelAndView.addObject( " 需要放到 model 中的属性名称 " , " 对应的属性值,它是一个对象 " );    return modelAndView;  }} 
@Controller@RequestMapping ( "/test" )public class MyController {  @RequestMapping ( "/showView" )  public ModelAndView showView() {    ModelAndView modelAndView = new ModelAndView();    modelAndView.setViewName( "viewName" );    modelAndView.addObject( " 需要放到 model 中的属性名称 " , " 对应的属性值,它是一个对象 " );    return modelAndView;  }} 
@Controller@RequestMapping ( "/myTest" )public class MyController {  @RequestMapping ( "*/wildcard" )  public String testWildcard() {    System. out .println( "wildcard------------" );    return "wildcard" ;  } } 
  @RequestMapping ( "requestParam" )  public String testRequestParam( @RequestParam(required=false) String name, @RequestParam ( "age" ) int age) {    return "requestParam" ;  } 
1   @RequestMapping ( "cookieValue" )2   public String testCookieValue( @CookieValue ( "hello" ) String cookieValue, @CookieValue String hello) {3    System. out .println(cookieValue + "-----------" + hello);4    return "cookieValue" ;5   } 
@RequestMapping ( "testRequestHeader" )public String testRequestHeader( @RequestHeader ( "Host" ) String hostAddr, @RequestHeader String Host, @RequestHeader String host ) {  System. out .println(hostAddr + "-----" + Host + "-----" + host );  return "requestHeader" ;} 
  @RequestMapping (value= "testParams" , params={ "param1=value1" , "param2" , "!param3" })  public String testParams() {    System. out .println( "test Params..........." );    return "testParams" ;  } 
@Controller@RequestMapping ( "/myTest" )@SessionAttributes (value={ "intValue" , "stringValue" }, types={User. class })public class MyController {  @ModelAttribute ( "hello" )  public String getModel() {    System. out .println( "-------------Hello---------" );    return "world" ;  }  @ModelAttribute ( "intValue" )  public int getInteger() {    System. out .println( "-------------intValue---------------" );    return 10;  }    @RequestMapping ( "sayHello" )  public void sayHello(Map<String, Object> map, @ModelAttribute ( "hello" ) String hello, @ModelAttribute ( "intValue" ) int num, @ModelAttribute ( "user2" ) User user, Writer writer, HttpServletRequest request) throws IOException {    map.put( "stringValue" , "String" );    writer.write( "Hello " + hello + " , Hello " + user.getUsername() + num);    writer.write( "\r" );    HttpSession session = request.getSession();    Enumeration enume = session.getAttributeNames();    while (enume.hasMoreElements())      writer.write(enume.nextElement() + "\r" );    System. out .println(session);  }  @ModelAttribute ( "user2" )  public User getUser() {    System. out .println( "---------getUser-------------" );    return new User(3, "user2" );  }} 
@Controller@RequestMapping ( "/myTest" )@SessionAttributes (value={ "user1" , "blog1" }, types={User. class , Blog. class })public class MyController {  @RequestMapping ( "setSessionAttribute" )  public void setSessionAttribute(Map<String, Object> map, Writer writer) throws IOException {    User user = new User(1, "user" );    User user1 = new User(2, "user1" );    Blog blog = new Blog(1, "blog" );    Blog blog1 = new Blog(2, "blog1" );    map.put( "user" , user);    map.put( "user1" , user1);    map.put( "blog" , blog);    map.put( "blog1" , blog1);    writer.write( "over." );  }   @RequestMapping ( "useSessionAttribute" )  public void useSessionAttribute(Writer writer, @ModelAttribute ( "user1" ) User user1, @ModelAttribute ( "blog1" ) Blog blog1) throws IOException {    writer.write(user1.getId() + "--------" + user1.getUsername());    writer.write( "\r" );    writer.write(blog1.getId() + "--------" + blog1.getTitle());  }  @RequestMapping ( "useSessionAttribute2" )  public void useSessionAttribute(Writer writer, @ModelAttribute ( "user1" ) User user1, @ModelAttribute ( "blog1" ) Blog blog1, @ModelAttribute User user, HttpSession session) throws IOException {    writer.write(user1.getId() + "--------" + user1.getUsername());    writer.write( "\r" );    writer.write(blog1.getId() + "--------" + blog1.getTitle());    writer.write( "\r" );    writer.write(user.getId() + "---------" + user.getUsername());    writer.write( "\r" );    Enumeration enume = session.getAttributeNames();    while (enume.hasMoreElements())      writer.write(enume.nextElement() + " \r" );  }  @RequestMapping ( "useSessionAttribute3" )  public void useSessionAttribute( @ModelAttribute ( "user2" ) User user) {  }} 
@Controller@RequestMapping ( "/myTest" )public class MyController {  @InitBinder  public void dataBinder(WebDataBinder binder) {    DateFormat dateFormat = new SimpleDateFormat( "yyyyMMdd" );    PropertyEditor propertyEditor = new CustomDateEditor(dateFormat, true ); // 第二个参数表示是否允许为空    binder.registerCustomEditor(Date. class , propertyEditor);  }  @RequestMapping ( "dataBinder/{date}" )  public void testDate( @PathVariable Date date, Writer writer) throws IOException {    writer.write(String.valueOf (date.getTime()));  }} 
  @InitBinder  public void dataBinder(WebDataBinder binder) {    // 定义一个 User 属性编辑器    PropertyEditor userEditor = new PropertyEditorSupport() {      @Override      public String getAsText() {       // TODO Auto-generated method stub       User user = (User) getValue();       return user.getUsername();      }      @Override      public void setAsText(String userStr) throws IllegalArgumentException {       // TODO Auto-generated method stub       User user = new User(1, userStr);       setValue(user);      }    };    // 使用 WebDataBinder 注册 User 类型的属性编辑器    binder.registerCustomEditor(User. class , userEditor);  } 

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:SpringMVC Controller 介绍

关键词:Spring

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录