springMVC注解
2017-02-02 22:05
323 查看
@ResponseBody
1.参数为String数组
访问地址:http://localhost:8080/array.do?name=Tom&name=Lucy&name=Jim
2.参数为Integer包装类型和int基本类型
访问地址:前者
http://localhost:8080/baseType.do?age=10
http://localhost:8080/baseType.do //Error 500
http://localhost:8080/baseType.do?age=abc //Error 400
包装类型:
http://localhost:8080/baseType2.do?age=10
http://localhost:8080/baseType2.do
http://localhost:8080/baseType2.do?age=abc //Error 400
3.List类型
UserListForm类
访问地址:
.name=Tom&users[1].name=Lucy]http://localhost:8080/list.do?users[0].name=Tom&users[1].name=Lucy
.name=Tom&users[1].name=Lucy&users[20].name=Jim]http://localhost:8080/list.do?users[0].name=Tom&users[1].name=Lucy&users[20].name=Jim
4.参数为set类型
UserSetForm类
访问地址:.name=Tom&users[20].name=Lucy]http://localhost:8080/set.do?users[0].name=Tom&users[20].name=Lucy
5.参数为Map类型
UserMapForm类
访问地址:
http://localhost:8080/map.do?users[‘X’].name=Tom&users[‘X’].age=10&users[‘Y’].name=Lucy
6.文件上传
视图层
多文件上传
XML配置文件
静态资源处理
Json文件处理
XML配置
pom.xml文件
1.参数为String数组
@RequestMapping(value = "array.do") public @ResponseBody String array(String[] name){ StringBuilder sbf = new StringBuilder(); for(String item : name){ sbf.append(item).append(" "); } return sbf.toString(); }
访问地址:http://localhost:8080/array.do?name=Tom&name=Lucy&name=Jim
2.参数为Integer包装类型和int基本类型
@RequestMapping(value = "baseType.do") public @ResponseBody String baseType(int age){ return "age:"+age; } @RequestMapping(value = "baseType2.do") public @ResponseBody String baseType2(Integer age){ return "age:"+age; }
访问地址:前者
http://localhost:8080/baseType.do?age=10
http://localhost:8080/baseType.do //Error 500
http://localhost:8080/baseType.do?age=abc //Error 400
包装类型:
http://localhost:8080/baseType2.do?age=10
http://localhost:8080/baseType2.do
http://localhost:8080/baseType2.do?age=abc //Error 400
3.List类型
@RequestMapping(value = "list.do") public @ResponseBody String list(UserListForm userListForm){ return "listSize:"+userListForm.getUsers().size() + " " + userListForm.toString(); }
UserListForm类
public class UserListForm { private List<User> users; public List<User> getUsers() { return users; } public void setUsers(List<User> users) { this.users = users; } @Override public String toString() { return "UserListForm{" + "users=" + users + '}'; } }
访问地址:
.name=Tom&users[1].name=Lucy]http://localhost:8080/list.do?users[0].name=Tom&users[1].name=Lucy
.name=Tom&users[1].name=Lucy&users[20].name=Jim]http://localhost:8080/list.do?users[0].name=Tom&users[1].name=Lucy&users[20].name=Jim
4.参数为set类型
@RequestMapping(value = "set.do") public @ResponseBody String set(UserSetForm userSetForm){ return userSetForm.toString(); }
UserSetForm类
public class UserSetForm { private Set<User> users; private UserSetForm(){ users = new LinkedHashSet<User>(); users.add(new User()); users.add(new User()); } public Set<User> getUsers() { return users; } public void setUsers(Set<User> users) { this.users = users; } @Override public String toString() { return "UserSetForm{" + "users=" + users + '}'; } }
访问地址:.name=Tom&users[20].name=Lucy]http://localhost:8080/set.do?users[0].name=Tom&users[20].name=Lucy
5.参数为Map类型
@RequestMapping(value = "map.do") public @ResponseBody String map(UserMapForm userMapForm){ return userMapForm.toString(); }
UserMapForm类
public class UserMapForm { private Map<String,User> users; @Override public String toString() { return "UserMapForm{" + "users=" + users + '}'; } public Map<String, User> getUsers() { return users; } public void setUsers(Map<String, User> users) { this.users = users; } }
访问地址:
http://localhost:8080/map.do?users[‘X’].name=Tom&users[‘X’].age=10&users[‘Y’].name=Lucy
6.文件上传
@RequestMapping(value="/doUpload", method=RequestMethod.POST) public String doUploadFile(@RequestParam("file") MultipartFile file) throws IOException{ if(!file.isEmpty()){ log.debug("Process file: {}", file.getOriginalFilename()); FileUtils.copyInputStreamToFile(file.getInputStream(), new File("/home/yangshuangpeng/桌面/temp/imooc/", System.currentTimeMillis()+ file.getOriginalFilename())); } return "success"; }
视图层
<form method="post" action="/courses/doUpload" enctype="multipart/form-data"> <input type="file" name="file"/> <input type="submit"/> </form>
多文件上传
@RequestMapping(value="/doUpload2", method=RequestMethod.POST) public String doUploadFile2(MultipartHttpServletRequest multiRequest) throws IOException{ Iterator<String> filesNames = multiRequest.getFileNames(); while(filesNames.hasNext()){ String fileName =filesNames.next(); MultipartFile file = multiRequest.getFile(fileName); if(!file.isEmpty()){ log.debug("Process file: {}", file.getOriginalFilename()); FileUtils.copyInputStreamToFile(file.getInputStream(), new File("/home/yangshuangpeng/桌面/temp/imooc/", System.currentTimeMillis()+ file.getOriginalFilename())); } } return "success"; }
XML配置文件
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="209715200" /> <property name="defaultEncoding" value="UTF-8" /> <property name="resolveLazily" value="true" /> </bean>
静态资源处理
<mvc:resources mapping="/resources/**" location="/resources/" />
Json文件处理
@RequestMapping(value="/{courseId}",method=RequestMethod.GET) public @ResponseBody Course getCourseInJson(@PathVariable Integer courseId){ return courseService.getCoursebyId(courseId); } @RequestMapping(value="/jsontype/{courseId}",method=RequestMethod.GET) public ResponseEntity<Course> getCourseInJson2(@PathVariable Integer courseId){ Course course = courseService.getCoursebyId(courseId); return new ResponseEntity<Course>(course, HttpStatus.OK); }
XML配置
<!-- 配置ViewResolver。 可以用多个ViewResolver。 使用order属性排序。 InternalResourceViewResolver放在最后。 --> <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="order" value="1" /> <property name="mediaTypes"> <map> <entry key="json" value="application/json" /> <entry key="xml" value="application/xml" /> <entry key="htm" value="text/html" /> </map> </property> <property name="defaultViews"> <list> <!-- JSON View --> <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"> </bean> </list> </property> <property name="ignoreAcceptHeader" value="true" /> </bean>
pom.xml文件
<properties> <commons-lang.version>2.6</commons-lang.version> <slf4j.version>1.7.6</slf4j.version> <spring.version>4.1.3.RELEASE</spring.version> <jackson.version>2.5.4</jackson.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>${spring.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>${commons-lang.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> <exclusions> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency>
相关文章推荐
- 使用springmvc拦截器+自定义注解做权限管理
- springmvc基于注解的定时任务
- springmvc常用注解之@Controller和@RequestMapping概要说明
- SpringMVC 常用注解
- 以注解的形式来实现一个springmvc的简单范例
- springmvc注解整理
- springmvc请求路径和请求参数的获取注解- @PathVariable和@RequestParam
- SpringMVC响应Ajax请求(@Responsebody注解返回页面)
- SpringMVC中@RequestMapping处理请求参数的@RequestParam注解
- SpringMVC注解之看一眼
- 一篇非常经典的springMVC注解实现方式详解
- 基于maven的SpringMVC,Spring,MyBatis的全注解配置
- springmvc 基于全注解事务配置注意事项
- 我的SpringMvc学习之路之注解
- 基于注解的SpringMVC简单介绍
- SpringMVC注解@RequestParam全面解析
- 使用SpringMVC注解@RequestParam(value="XXX",required=false)时需要注意的问题
- SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
- springmvc梳理9-----用注解来进行数据绑定
- springmvc注解事例