一、通过浏览器访问图片
1、配置虚拟目录
配置完成
以上配置相当于在tomcat的server.xml文件当中配置
2、通过浏览器访问对应目录下的图片
访问路径:http://localhost:8080/pic/1.png
二、文件上传
1、引入jar包
2、配置多媒体解析器
<!-- 配置多媒体处理器 -->
<!-- 注意:这里id必须填写:multipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 最大上传文件大小 -->
<property name="maxUploadSize" value="8388608" />
</bean>
限制最大上传8M=8388608
3、修改itemEdit.jsp
<form id="itemForm" action="${pageContext.request.contextPath }/updateItem.action" enctype="multipart/form-data" method="post">
<input type="hidden" name="id" value="${item.id }" /> 修改商品信息:
<table width="100%" border=1>
<tr>
<tr>
<td>商品生产日期</td>
<td><input type="text" name="createtime"
value="<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>" /></td>
</tr>
<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>
访问http://localhost:8080/itemList.action
4、修改ItemController当中的updateItem实现上传图片的功能
/**
* 修改商品 演示pojo参数绑定
* @param item
* @return
* @throws IOException
* @throws IllegalStateException
*/
@RequestMapping(value = "updateItem", method = { RequestMethod.POST, RequestMethod.GET })
public String updateItem(Item item, MultipartFile pictureFile, Model model) throws Exception {
// 图片新名字
String newName = UUID.randomUUID().toString();// 创建新的图片名称
// 图片原来的名字
String oldName = pictureFile.getOriginalFilename();
// 后缀
String sux = oldName.substring(oldName.lastIndexOf("."));
//新建本地文件流
File file = new File("D:\\tomcatimage\\" + newName + sux);
// 写入本地磁盘
pictureFile.transferTo(file);
//保存图片到数据库
item.setPic(newName + sux);
itemService.updateItem(item);
model.addAttribute("item", item);
model.addAttribute("msg", "修改商品信息成功");
return "itemEdit";
// return "forward:itemEdit.action";//请求转发
//return "redirect:itemList.action";// 重定向
}
5、修改Item类,在createtime上添加@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
package com.itzheng.springmvc.pojo;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
public class Item {
private Integer id;
private String name;
private Float price;
private String detail;
private String pic;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createtime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public Float getPrice() {
return price;
}
public void setPrice(Float price) {
this.price = price;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail == null ? null : detail.trim();
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic == null ? null : pic.trim();
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
@Override
public String toString() {
return "Item [id=" + id + ", name=" + name + ", price=" + price + ", detail=" + detail + ", pic=" + pic
+ ", createtime=" + createtime + "]";
}
}
6、运行测试
http://localhost:8080/itemEdit.action?id=1 选择对应图片,提交