以下资源写的很好,感谢原创作者,原创地址,特收藏!一、简介 在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
(#换成@)。