博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己的springmvc复习(二)springmvc提高
阅读量:4142 次
发布时间:2019-05-25

本文共 3176 字,大约阅读时间需要 10 分钟。

二、springmvc提高

1.参数绑定之数组(删除多个商品)
(1)修改jsp页面,添加CheckBox,添加删除按钮
(2)新建方法删除,将数组传到QueryVo里面
@RequestMapping(value = “/deletes.action”)
public ModelAndView deletes(QueryVo vo){
ModelAndView mav = new ModelAndView();
mav.setViewName(“success”);
return mav;

在QueryVo新创建对象ids,然后添加set 和get方法Integer[] ids;

1.参数绑定之List

(1)修改jsp页面
显示前两个属性的input
(2)新建方法修改,将List传到QueryVo里面
2.@RequestMapping的使用
(1)后面的method方法的值,只有get或者只有post时候只能用一个方法提交,下面的写法两种方法都可以提交
@RequestMapping(value = “/updates.action”,method = {RequestMethod.POST,RequestMethod.GET})
(2)多个url映射到一个方法
@RequestMapping(value = “/updates.action”,"/updateshaha.action")
两个url映射方法相同
3.controller层方法返回值
(1)几种返回类型
* 1.ModelAndView 无敌的 带着数据 返回视图路径 不建议使用
* 2.String 返回视图路径 model带数据 官方推荐此种方式 解耦 数据 视图 分离 MVC 建议使用
*3.void ajax 请求 合适 json格式数据 (response 异步请求使用
(2)采用string返回值操作
第一,controller方法返回类型改为String
public String updateitem()
第二, 返回值为重定向
return “redirect:/itemEdit.action”;
4.异常处理器
(1)新建一个异常处理的类,跳转到error.jsp页面
public class CustomExceptionResolver implements HandlerExceptionResolver{
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object obj,
Exception e) {
ModelAndView mav = new ModelAndView();
//判断异常类型
if(e instanceof MessageException){
//预期异常
MessageException me = (MessageException)e;
mav.addObject(“error”, me.getMsg());
}else{
mav.addObject(“error”, “未知异常”);
}
mav.setViewName(“error”);
return mav;
}
}
(2)自定义异常
1. 新建一个自定义异常处理的类
public class MessageException extends Exception{public class MessageException extends Exception{
private String msg;
public MessageException(String msg) {
super();
this.msg = msg;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
2.在可能发生异常的地方写明异常信息
if(null == null){
throw new MessageException(“商品信息不能为空”);
}
(3)在配置文件中注入
5.上传图片
(1)在Tomcat中添加图片保存到本地的设置(F:\upload)
在这里插入图片描述

(2) 在controller层的修改类中实现图片上传功能代码

1.public String updateitem(QueryVo vo,MultipartFile pictureFile) throws Exception{
在修改类的入参里面添加MultipartFile pictureFile,pictureFile名字必须跟jsp页面中的name属性相同。
2.随机生成图片名
String name = UUID.randomUUID().toString().replaceAll("-", “”);
3.获取上传图片的后缀//jpg
String ext = FilenameUtils.getExtension(pictureFile.getOriginalFilename());
4.将图片存到本地盘符
pictureFile.transferTo(new File(“F:\upload\” + name + “.” + ext));
5.将图片修改到数据库
vo.getItems().setPic(name + “.” + ext);
(3) 在配置文件中添加上传图片实现类
(4)editItem.jsp页面图片代码
商品图片
<c:if test=" i t e m . p i c ! = n u l l &quot; &gt; &lt; i m g s r c = &quot; / p i c / {item.pic !=null}&quot;&gt; &lt;img src=&quot;/pic/ item.pic!=null"><imgsrc="/pic/{item.pic}" width=100 height=100/>
</c:if>
5.Json数据交互
(1)添加jq文件

(2)添加js数据			(3)为数据交互编写java代码		@RequestMapping(value = "/json.action")		public @ResponseBody			Items json(@RequestBody Items items){				return items;		}		//两个@注解为了适应各种开发环境

5.Restful风格开发

(1)在路径映射的后面加上{id}字段
(2)在方法的入参上面加入id字段
@RequestMapping(value = “/itemEdit/{id}.action”)
public ModelAndView toEdit1(@PathVariable Integer id,
HttpServletRequest request,HttpServletResponse response
,HttpSession session,Model model){
Items items = itemService.selectItemsById(id);
ModelAndView mav = new ModelAndView();
//数据
mav.addObject(“item”, items);
mav.setViewName(“editItem”);
return mav;

}
你可能感兴趣的文章
X-code7 beta error: warning: Is a directory
查看>>
Error: An App ID with identifier "*****" is not avaliable. Please enter a different string.
查看>>
iTunes Connect 上传APP报错: Communication error. please use diagnostic mode to check connectivity.
查看>>
3.5 YOLO9000: Better,Faster,Stronger(YOLO9000:更好,更快,更强)
查看>>
iOS菜鸟学习--如何避免两个按钮同时响应
查看>>
How to access the keys in dictionary in object-c
查看>>
iOS菜鸟学习—— NSSortDescriptor的使用
查看>>
hdu 3787 hdoj 3787
查看>>
hdu 3790 hdoj 3790
查看>>
hdu 3789 hdoj 3789
查看>>
hdu 3788 hdoj 3788
查看>>
zju 1003 zoj 1003
查看>>
zju 1004 zoj 1004
查看>>
zju 1005 zoj 1005
查看>>
zju 1006 zoj 1006
查看>>
【虚拟机】虚拟化架构与系统部署(Windows系统安装)
查看>>
字节跳动安卓开发实习生面试分享
查看>>
好书分享之——《能力陷进》
查看>>
阅读笔记《c++ primer》
查看>>
阅读笔记《C++标准程序库》
查看>>