SpringMvc高级配置详解
来源:互联网 发布:sql case when 嵌套 编辑:程序博客网 时间:2024/05/11 21:07
1. @RequestMapping的使用
定义:@RequestMapping可以定义处理器的映射规则
理解:url路径到请求方法的映射
扩展:@RequestMapping可以定义在在类上,这样可以窄化请求路径,通俗理解就是在请求路径上增加一层目录,这样做也是必须的,在做开发的时候你不会预料到同一个项目中会有重复定义的url路径,所以在请求路径上增加一层目录是必须的。
@Controller//窄化请求映射:为防止你和你的队友在conroller方法起名的时候重名,所以相当于在url中多加了一层目录,防止重名@RequestMapping("/items")public class ItemsController {<!--查询商品列表的方法--> @RequestMapping("/list") public ModelAndView itemsList() throws Exception{ }}//例如:当前list的访问路径 localhost:8081/ssm0523-1/items/list.action
@ReqeustMapping使用方法二:可以限定用户请求的方式,例如post或者仅仅Get
//@RequestMapping(value="/list", method=RequestMethod.GET)
2、controller方法的返回值(指定返回到那个页面,返回什么数据)
1)ModelAndView
modelAndView.addObject(“itemList”, list); 指定返回页面的数据
modelAndView.setViewName(“itemList”); 指定返回的页面
2)String(推荐使用)
返回普通字符串,就是页面去掉扩展名的名称, 返回给页面数据通过Model来完成
返回的字符串以forward:开头为请求转发
返回的字符串以redirect:开头为重定向
无论使用forward还是redirect都建议使用model来进行传递数据,虽然model底层使用的是request来进行实现的,但是model进行了加强,无论在forward还是redirect都能向页面传递数据。
3)返回void(使用它破坏了springMvc的结构,所以不建议使用)
可以使用request.setAttribut 来给页面返回数据
可以使用request.getRquestDispatcher().forward()来指定返回的页面
如果controller返回值为void则不走springMvc的组件,所以要写页面的完整路径名称
4)补充
相对路径:相对于当前目录,也就是在当前类的目录下,这时候可以使用相对路径跳转
绝对路径:从项目名后开始.
在springMvc中不管是forward还是redirect后面凡是以/开头的为绝对路径,不以/开头的为相对路径
例如:forward:/items/itemEdit.action 为绝对路径
forward:itemEdit.action为相对路径
3、异常处理器(未完成)
springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。
springmvc中自带了一个异常处理器叫SimpleMappingExceptionResolver,该处理器实现了HandlerExceptionResolver 接口,全局异常处理器都需要实现该接口。我们要使用这个自带的异常处理器,首先得在springmvc.xml文件中配置该处理器:
4、SpringMvc上传图片
4.1配置虚拟目录
在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:<Context docBase="F:\develop\upload\temp" path="/pic" reloadable="false"/>访问http://localhost:8080/pic即可访问F:\develop\upload\temp下的图片。
4.2导入jar包
CommonsMultipartResolver解析器依赖commons-fileupload和commons-io,加入如下jar
4.3配置解析器(在SpringMvc的核心配置文件中)
<!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置上传文件的最大尺寸为5MB --> <property name="maxUploadSize"> <value>5242880</value> </property> </bean>
4.4controller方法接收并操作
//商品修改提交 @RequestMapping("/editItemSubmit") public String editItemSubmit(Items items, MultipartFile pictureFile)throws Exception{ //原始文件名称 String pictureFile_name = pictureFile.getOriginalFilename(); //新文件名称 String newFileName = UUID.randomUUID().toString()+pictureFile_name.substring(pictureFile_name.lastIndexOf(".")); //上传图片 File uploadPic = new java.io.File("F:/develop/upload/temp/"+newFileName); if(!uploadPic.exists()){ uploadPic.mkdirs(); } //向磁盘写文件 pictureFile.transferTo(uploadPic);.....
4.5页面(form添加enctype=”multipart/form-data”)
<form id="itemForm"action="${pageContext.request.contextPath }/item/editItemSubmit.action" method="post" enctype="multipart/form-data"> <input type="hidden" name="pic" value="${item.pic }" />file的name与controller形参一致:<tr> <td>商品图片</td> <td><c:if test="${item.pic !=null}"> <img src="/pic/${item.pic}" width=100 height=100 /> <br /> </c:if> <input type="file" name="pictureFile" /></td></tr></form>
5,json数据交互
- SpringMvc高级配置详解
- springMVC+mybatis配置详解
- springmvc配置详解
- SpringMVC配置详解
- SpringMVC 配置详解
- SpringMVC的配置详解
- springMVC web配置详解
- 深入 SpringMVC配置详解
- springmvc配置详解
- Swagger2+SpringMVC配置详解
- Springmvc配置详解
- springmvc配置详解
- Apache高级配置中文详解
- SpringMVC 配置过程及详解
- SpringMVC 配置过程及详解
- springmvc+mybatis+ehcache配置详解
- SpringMVC配置详解(简)
- SpringMVC组件及配置详解
- [cnblogs镜像]Unity 导入的模型检测不到碰撞
- Android Mediacodec H.265文件播放
- Android ANR 原因分析与检测
- 一些思考02
- mybatis(7)多对多映射
- SpringMvc高级配置详解
- Zipper
- 初识jdk动态代理
- docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面
- 泛型方法
- eclipse如何安装java decompiler反编译插件
- [Codeforces Round #436 (Div. 2)]
- 解决 Windows 下 scrapy 第三方库无法安装问题
- 整理一下eclipse的快捷键