孔浩Spring mvc 笔记
来源:互联网 发布:电脑魔方计时器软件 编辑:程序博客网 时间:2024/05/22 17:23
http://blog.csdn.net/estelle_belle/article/details/38425079?utm_source=tuicool&utm_medium=referral
Spring mvc 配置:
Web.xml:
- <?xml version=”1.0”encoding=”UTF-8”?>
- <web-appxmlns:xsiweb-appxmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”xmlns=”http://java.sun.com/xml/ns/javaee”xmlns:web=“http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”id=”WebApp_ID” version=“2.5”>
- <servlet>
- <servlet-name>hello</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>hello</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <filter>
- <filter-name>CharacterFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>CharacterFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- </web-app>
<?xml version="1.0"encoding="UTF-8"?><web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"> <servlet> <servlet-name>hello</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <filter-name>CharacterFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
Hello-servlet.xml
(名称必须与web.xm文件中的servlet-name相同,放到web-inf下)
- <?xml version=”1.0”encoding=”UTF-8”?>
- <beansxmlnsbeansxmlns=“http://www.springframework.org/schema/beans”
- xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
- xmlns:context=“http://www.springframework.org/schema/context”
- xmlns:mvc=“http://www.springframework.org/schema/mvc”
- xsi:schemaLocation=”http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
- http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.1.xsd”>
- <context:component-scanbase-packagecontext:component-scanbase-package=“zttc.itat.controller”/>
- <mvc:annotation-driven/>
- <!–将静态文件指定到某个特殊的文件夹中统一处理 –>
- <mvc:resourceslocationmvc:resourceslocation=“/resources/” mapping=“/resources/**”/>
- <beannamebeanname=”/welcome.html”class=”zttc.itat.controller.WelcomeController”></bean>
- <beanclassbeanclass=“org.springframework.web.servlet.view.InternalResourceViewResolver”>
- <propertynamepropertyname=”viewClass”value=”org.springframework.web.servlet.view.JstlView”/>
- <propertynamepropertyname=“prefix” value=“/WEB-INF/jsp/”/>
- <propertynamepropertyname=“suffix” value=“.jsp”/>
- </bean>
- <!–设置multipartResolver才能完成文件上传 –>
- <beanidbeanid=”multipartResolver”class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”>
- <propertynamepropertyname=“maxUploadSize” value=“5000000”></property>
- </bean>
- <beanidbeanid=“exceptionResolver” class=“org.springframework.web.servlet.handler.SimpleMappingExceptionResolver”>
- <propertynamepropertyname=“exceptionMappings”>
- <props>
- <propkeypropkey=“zttc.itat.model.UserException”>error</prop>
- </props>
- </property>
- </bean>
- </beans>
<?xml version="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.1.xsd"> <context:component-scanbase-package="zttc.itat.controller"/> <mvc:annotation-driven/> <!--将静态文件指定到某个特殊的文件夹中统一处理 --> <mvc:resourceslocation="/resources/" mapping="/resources/**"/> <beanname="/welcome.html"class="zttc.itat.controller.WelcomeController"></bean> <beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"> <propertyname="viewClass"value="org.springframework.web.servlet.view.JstlView"/> <propertyname="prefix" value="/WEB-INF/jsp/"/> <propertyname="suffix" value=".jsp"/> </bean> <!--设置multipartResolver才能完成文件上传 --> <beanid="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <propertyname="maxUploadSize" value="5000000"></property> </bean> <beanid="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <propertyname="exceptionMappings"> <props> <propkey="zttc.itat.model.UserException">error</prop> </props> </property> </bean></beans>
UserController .java
- @Controller
- @RequestMapping(“/user”)
- public class UserController {
- private Map<String, User> users = new HashMap<String, User>();
- public UserController() {
- users.put(“sdy”,new User(“sdy”,”123”,”宋冬野”,”sdy@qq.com”));
- users.put(“ldh”,new User(“ldh”,”123”,”刘德华”,”ldh@qq.com”));
- users.put(“gfc”,new User(“gfc”,”123”,”郭富城”,”gfc@qq.com”));
- users.put(“lm”,new User(“lm”,”123”,”黎明”,”lm@qq.com”));
- users.put(“zxy”,new User(“zxy”,”123”,”张学友”,”zxy@qq.com”));
- }
- //列表页面
- @RequestMapping(value = “/users”,method = RequestMethod.GET)
- public String list(Model model){
- model.addAttribute(“users”, users);
- return “user/list”;
- }
- //添加用户页面
- @RequestMapping(value = “/add”,method = RequestMethod.GET)
- public String add(Model model){
- //开启ModelDriven
- model.addAttribute(new User());
- return “user/add”;
- }
- //添加用户
- @RequestMapping(value = “/add”,method = RequestMethod.POST)
- public String add(@Validated User user,BindingResult br, @RequestParam(“attachs”)MultipartFile[] attachs, HttpServletRequest req) throws IOException {
- if(br.hasErrors()){
- //如果有错误直接调整到add视图
- return “user/add”;
- }
- //System.out.println(attach.getName() + ”,” + attach.getOriginalFilename() + ”,” + attach.getContentType());
- String realPath = req.getServletContext().getRealPath(“/resources/upload”);
- System.out.println(realPath);
- for(MultipartFile attach : attachs){
- if(attach.isEmpty()) continue;
- File f = new File(realPath + ”/” + attach.getOriginalFilename());
- FileUtils.copyInputStreamToFile(attach.getInputStream(), f);
- }
- users.put(user.getUsername(), user);
- return “redirect:users”;
- }
- @RequestMapping(value = “/{username}”,method = RequestMethod.GET)
- public String show(@PathVariable String username, Model model){
- model.addAttribute(users.get(username));
- return “user/show”;
- }
- // @RequestMapping(value = “/{username}”,method = RequestMethod.GET,params = “json”)
- // @ResponseBody
- // public User show(@PathVariable String username){
- // return users.get(username);
- //
- // }
- @RequestMapping(value=“/{username}”,method=RequestMethod.GET,params=“json”)
- @ResponseBody
- public User show(@PathVariable String username) {
- return users.get(username);
- }
- @RequestMapping(value = “/{username}/update”,method = RequestMethod.GET)
- public String update(@PathVariable String username, Model model){
- model.addAttribute(users.get(username));
- return “user/update”;
- }
- @RequestMapping(value = “/{username}/update”,method = RequestMethod.POST)
- public String update(@PathVariable String username, User user, BindingResult br){
- if(br.hasErrors()){
- //如果有错误直接调整到add视图
- return “user/update”;
- }
- users.put(username, user);
- return “redirect:/user/users”;
- }
- @RequestMapping(value = “/{username}/delete”,method = RequestMethod.GET)
- public String delete(@PathVariable String username){
- users.remove(username);
- return “redirect:/user/users”;
- }
- @RequestMapping(value = “/login”,method = RequestMethod.POST)
- public String login(String username, String password, HttpSession session){
- if(!users.containsKey(username)){
- throw new UserException(“用户名不存在!”);
- }
- User user = users.get(username);
- if(!user.getPassword().equals(password)){
- throw new UserException(“密码错误!”);
- }
- session.setAttribute(“user”, user);
- return “redirect:/user/users”;
- }
- /* @ExceptionHandler(value ={UserException.class})
- public String handlerException(UserException e, HttpServletRequest req){
- req.setAttribute(“e”, e);
- return “error”;
- }*/
- }
@Controller@RequestMapping("/user")public class UserController { private Map<String, User> users = new HashMap<String, User>(); public UserController() { users.put("sdy",new User("sdy","123","宋冬野","sdy@qq.com")); users.put("ldh",new User("ldh","123","刘德华","ldh@qq.com")); users.put("gfc",new User("gfc","123","郭富城","gfc@qq.com")); users.put("lm",new User("lm","123","黎明","lm@qq.com")); users.put("zxy",new User("zxy","123","张学友","zxy@qq.com")); } //列表页面 @RequestMapping(value = "/users",method = RequestMethod.GET) public String list(Model model){ model.addAttribute("users", users); return "user/list"; } //添加用户页面 @RequestMapping(value = "/add",method = RequestMethod.GET) public String add(Model model){ //开启ModelDriven model.addAttribute(new User()); return "user/add"; } //添加用户 @RequestMapping(value = "/add",method = RequestMethod.POST) public String add(@Validated User user,BindingResult br, @RequestParam("attachs")MultipartFile[] attachs, HttpServletRequest req) throws IOException { if(br.hasErrors()){ //如果有错误直接调整到add视图 return "user/add"; } //System.out.println(attach.getName() + "," + attach.getOriginalFilename() + "," + attach.getContentType()); String realPath = req.getServletContext().getRealPath("/resources/upload"); System.out.println(realPath); for(MultipartFile attach : attachs){ if(attach.isEmpty()) continue; File f = new File(realPath + "/" + attach.getOriginalFilename()); FileUtils.copyInputStreamToFile(attach.getInputStream(), f); } users.put(user.getUsername(), user); return "redirect:users"; } @RequestMapping(value = "/{username}",method = RequestMethod.GET) public String show(@PathVariable String username, Model model){ model.addAttribute(users.get(username)); return "user/show"; }// @RequestMapping(value = "/{username}",method = RequestMethod.GET,params = "json")// @ResponseBody// public User show(@PathVariable String username){// return users.get(username);//// } @RequestMapping(value="/{username}",method=RequestMethod.GET,params="json") @ResponseBody public User show(@PathVariable String username) { return users.get(username); } @RequestMapping(value = "/{username}/update",method = RequestMethod.GET) public String update(@PathVariable String username, Model model){ model.addAttribute(users.get(username)); return "user/update"; } @RequestMapping(value = "/{username}/update",method = RequestMethod.POST) public String update(@PathVariable String username, User user, BindingResult br){ if(br.hasErrors()){ //如果有错误直接调整到add视图 return "user/update"; } users.put(username, user); return "redirect:/user/users"; } @RequestMapping(value = "/{username}/delete",method = RequestMethod.GET) public String delete(@PathVariable String username){ users.remove(username); return "redirect:/user/users"; } @RequestMapping(value = "/login",method = RequestMethod.POST) public String login(String username, String password, HttpSession session){ if(!users.containsKey(username)){ throw new UserException("用户名不存在!"); } User user = users.get(username); if(!user.getPassword().equals(password)){ throw new UserException("密码错误!"); } session.setAttribute("user", user); return "redirect:/user/users"; }/* @ExceptionHandler(value ={UserException.class}) public String handlerException(UserException e, HttpServletRequest req){ req.setAttribute("e", e); return "error"; }*/}
Rest风格
- /user_show?id=120
- /user/120
- /user_delete?id=123
- /user/123/delete
- /user_updateInput?id=123
- /user/123/update
- /user_list
- /users
- /user/users
- REST的风格不等于使用了REST技术
- GET,POST,PUT,DELETE
- topic/23/delete
/user_show?id=120/user/120 /user_delete?id=123/user/123/delete /user_updateInput?id=123/user/123/update /user_list/users/user/users REST的风格不等于使用了REST技术GET,POST,PUT,DELETE topic/23/delete
使用hibernate+spring+springmvc完整的实现一个用户管理系统
dao–>service–>controller
增加分页,增加sitemesh
- /**
- * 局部异常处理,仅仅只能处理这个控制器中的异常
- */
- @ExceptionHandler(value={UserException.class})
- public StringhandlerException(UserException e,HttpServletRequest req) {
- req.setAttribute(“e”,e);
- return”error”;
- }
- 全局异常处理
- <bean id=”exceptionResolver”class=”org.springframework.web.servlet.handler.SimpleMappingExceptionResolver”>
- <propertynamepropertyname=“exceptionMappings”>
- <props>
- <propkeypropkey=“zttc.itat.model.UserException”>error</prop>
- </props>
- </property>
- </bean>
/** * 局部异常处理,仅仅只能处理这个控制器中的异常 */@ExceptionHandler(value={UserException.class})public StringhandlerException(UserException e,HttpServletRequest req) { req.setAttribute("e",e); return"error";} 全局异常处理 <bean id="exceptionResolver"class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <propertyname="exceptionMappings"> <props> <propkey="zttc.itat.model.UserException">error</prop> </props> </property></bean>
- <!– 将静态文件指定到某个特殊的文件夹中统一处理–>
- <mvc:resourceslocationmvc:resourceslocation=“/resources/” mapping=“/resources/**”/>
<!-- 将静态文件指定到某个特殊的文件夹中统一处理--><mvc:resourceslocation="/resources/" mapping="/resources/**"/>
Spring mvc 文文件上传
1,UserController.java
- //在具体添加用户时,是post请求,就访问以下代码
- @RequestMapping(value=“/add”,method=RequestMethod.POST)
- public String add(@Validated Useruser,BindingResult br,@RequestParam(“attachs”)MultipartFile[]attachs,HttpServletRequest req) throws IOException {//一定要紧跟Validate之后写验证结果类
- if(br.hasErrors()){
- //如果有错误直接跳转到add视图
- return”user/add”;
- }
- Stringrealpath =req.getSession().getServletContext().getRealPath(“/resources/upload”);
- System.out.println(realpath);
- for(MultipartFileattach:attachs) {
- if(attach.isEmpty())continue;
- Filef = new File(realpath+”/”+attach.getOriginalFilename());
- FileUtils.copyInputStreamToFile(attach.getInputStream(),f);
- }
- users.put(user.getUsername(),user);
- return”redirect:/user/users”;
- }
//在具体添加用户时,是post请求,就访问以下代码@RequestMapping(value="/add",method=RequestMethod.POST)public String add(@Validated Useruser,BindingResult br,@RequestParam("attachs")MultipartFile[]attachs,HttpServletRequest req) throws IOException {//一定要紧跟Validate之后写验证结果类 if(br.hasErrors()){ //如果有错误直接跳转到add视图 return"user/add"; } Stringrealpath =req.getSession().getServletContext().getRealPath("/resources/upload"); System.out.println(realpath); for(MultipartFileattach:attachs) { if(attach.isEmpty())continue; Filef = new File(realpath+"/"+attach.getOriginalFilename()); FileUtils.copyInputStreamToFile(attach.getInputStream(),f); } users.put(user.getUsername(),user); return"redirect:/user/users";}
2,Hello-servlet.xml
- <!– 设置multipartResolver才能完成文件上传–>
- lt;bean id=”multipartResolver”class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”>
- <propertynamepropertyname=“maxUploadSize” value=“5000000”></property>
- lt;/bean>
<!-- 设置multipartResolver才能完成文件上传--><bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <propertyname="maxUploadSize" value="5000000"></property></bean>
3,jsp
- <!– 此时没有写action,直接提交会提交给/add–>
- <sf:form method=”post”modelAttribute=”user” enctype=“multipart/form-data”>
- Username:<sf:inputpathsf:inputpath=“username”/><sf:errorspathsf:errorspath=“username”/><br/>
- Password:<sf:passwordpathsf:passwordpath=“password”/><sf:errorspathsf:errorspath=“password”/><br/>
- Nickname:<sf:inputpathsf:inputpath=“nickname”/><br/>
- Email:<sf:inputpathsf:inputpath=“email”/><sf:errors path=“email”/><br/>
- Attach:<inputtypeinputtype=“file” name=“attachs”/><br/> <input type=”file”name=”attachs”/><br/> <inputtypeinputtype=“file” name=“attachs”/><br/>
- <inputtypeinputtype=“submit” value=“添加用户”/>
- </sf:form>
<!-- 此时没有写action,直接提交会提交给/add--><sf:form method="post"modelAttribute="user" enctype="multipart/form-data"> Username:<sf:inputpath="username"/><sf:errorspath="username"/><br/> Password:<sf:passwordpath="password"/><sf:errorspath="password"/><br/> Nickname:<sf:inputpath="nickname"/><br/> Email:<sf:inputpath="email"/><sf:errors path="email"/><br/> Attach:<inputtype="file" name="attachs"/><br/> <input type="file"name="attachs"/><br/> <inputtype="file" name="attachs"/><br/> <inputtype="submit" value="添加用户"/></sf:form>
Sitemesh:
步骤:
1, 定义相应的模板文件(main.jsp)
2, 编写装饰器文件,说明哪些页面要引入模板
decorators.xml:
- <?xmlversionxmlversion=“1.0” encoding=“UTF-8”?>
- <decoratorsdefaultdirdecoratorsdefaultdir=“/WEB-INF/decorators”>
- <!– Any urls that are excluded willnever be decorated by Sitemesh –>
- <excludes>
- <pattern>/exclude.jsp</pattern>
- <pattern>/exclude/*</pattern>
- </excludes>
- <decorator name=”main”page=”main.jsp”>
- <pattern>/*</pattern>
- </decorator>
- </decorators>
<?xmlversion="1.0" encoding="UTF-8"?><decoratorsdefaultdir="/WEB-INF/decorators"> <!-- Any urls that are excluded willnever be decorated by Sitemesh --> <excludes> <pattern>/exclude.jsp</pattern> <pattern>/exclude/*</pattern> </excludes> <decorator name="main"page="main.jsp"> <pattern>/*</pattern> </decorator></decorators>
3, 在web.xml中开启sitemesh的过滤器
- <filter>
- <filter-name>sitemesh</filter-name>
- <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>sitemesh</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
<filter> <filter-name>sitemesh</filter-name> <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class></filter><filter-mapping> <filter-name>sitemesh</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
Spring mvc总结:
1,在xml中配置DispatcherServlet
2,在web-inf下配置:xxx-servlet.xml
3,异常处理分局部异常处理(handlerException方法),和全局异常处理(配置xxx-servlet:SimpleMappingExceptionResolver)
- 异常处理(handlerException方法示例:
- /**
- * 局部异常处理,仅仅只能处理这个控制器中的异常
- */
- @ExceptionHandler(value={UserException.class})
- public StringhandlerException(UserException e,HttpServletRequest req) {
- req.setAttribute(“e”,e);
- return”error”;
- }
- 全局异常处理示例:
- <bean id=”exceptionResolver”class=”org.springframework.web.servlet.handler.SimpleMappingExceptionResolver”>
- <propertynamepropertyname=“exceptionMappings”>
- <props>
- <propkeypropkey=“zttc.itat.model.UserException”>error</prop>
- </props>
- </property>
- </bean>
异常处理(handlerException方法示例: /** * 局部异常处理,仅仅只能处理这个控制器中的异常 */@ExceptionHandler(value={UserException.class})public StringhandlerException(UserException e,HttpServletRequest req) { req.setAttribute("e",e); return"error";}全局异常处理示例:<bean id="exceptionResolver"class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <propertyname="exceptionMappings"> <props> <propkey="zttc.itat.model.UserException">error</prop> </props> </property></bean>
4,页面传值到Controller可以用方法的参数直接接收,或者用@PathVariable接收:
- @RequestMapping(value = “/{id}”,method = RequestMethod.GET)
- public Stringshow(@PathVariable int id, Model model){}
@RequestMapping(value = "/{id}",method = RequestMethod.GET)public Stringshow(@PathVariable int id, Model model){}
5,从Controller传值到页面可以从方法参数注入session,request,或者用Model,ModelMap
6,上传文件可以直接在方法参数中加:
- @RequestParam(“attach”)MultipartFile //上传一个文件,file input的名称为attach
- @RequestParam(“attachs”)MultipartFile[] //上传一组文件,file input的名称都为attachs
@RequestParam("attach")MultipartFile //上传一个文件,file input的名称为attach@RequestParam("attachs")MultipartFile[] //上传一组文件,file input的名称都为attachs
Spring mvc上传文件示例:
- @RequestMapping(value=“/add”,method=RequestMethod.POST)
- public String add(@Validated Useruser,BindingResult br,@RequestParam(“attachs”)MultipartFile[]attachs,HttpServletRequest req) throws IOException {//一定要紧跟Validate之后写验证结果类
- if(br.hasErrors()){
- //如果有错误直接跳转到add视图
- return”user/add”;
- }
- Stringrealpath =req.getSession().getServletContext().getRealPath(“/resources/upload”);
- System.out.println(realpath);
- for(MultipartFileattach:attachs) {
- if(attach.isEmpty())continue;
- Filef = new File(realpath+”/”+attach.getOriginalFilename());
- FileUtils.copyInputStreamToFile(attach.getInputStream(),f);
- }
- users.put(user.getUsername(),user);
- return”redirect:/user/users”;
- }
@RequestMapping(value="/add",method=RequestMethod.POST)public String add(@Validated Useruser,BindingResult br,@RequestParam("attachs")MultipartFile[]attachs,HttpServletRequest req) throws IOException {//一定要紧跟Validate之后写验证结果类 if(br.hasErrors()){ //如果有错误直接跳转到add视图 return"user/add"; } Stringrealpath =req.getSession().getServletContext().getRealPath("/resources/upload"); System.out.println(realpath); for(MultipartFileattach:attachs) { if(attach.isEmpty())continue; Filef = new File(realpath+"/"+attach.getOriginalFilename()); FileUtils.copyInputStreamToFile(attach.getInputStream(),f); } users.put(user.getUsername(),user); return"redirect:/user/users";}
7,spring mvc方法返回json对象示例:
导入json包:jackson-all-1.9.4.jar
- @RequestMapping(value=“/{username}”,method=RequestMethod.GET,params=“json”)
- @ResponseBody
- public User show(@PathVariable Stringusername) {
- returnusers.get(username);
- }
@RequestMapping(value="/{username}",method=RequestMethod.GET,params="json")@ResponseBodypublic User show(@PathVariable Stringusername) { returnusers.get(username);}
- 孔浩Spring mvc 笔记
- 孔浩Spring mvc 笔记
- Spring MVC笔记
- spring mvc 基础笔记
- spring mvc 笔记
- Spring MVC 学习笔记
- Spring MVC笔记
- Spring MVC 笔记1
- Spring MVC笔记
- Spring MVC笔记
- spring MVC学习笔记
- Spring Mvc 笔记
- spring mvc笔记
- Spring MVC学习笔记
- spring-mvc学习笔记
- spring mvc学习笔记
- spring mvc 学习笔记
- Spring MVC 学习笔记
- PHP各版本迭代
- 修改静态地址后发现无法ping外网
- GKStrategist
- BOM操作
- Thread和Runnable的区别
- 孔浩Spring mvc 笔记
- B
- java -xml文件读取
- mysql左连接右连接(查询两张表不同的数据)
- tesseract 遇到的一些问题
- 开启子线程的方法(二)
- JUnit 实现多并发
- 查找 -- 红黑树的删除操作
- 001-js基础-变量提升练习题