目录:
springmvc的注解方式
文件上传(上传图片,并显示)
一、注解
在类前面加上@Controller 表示该类是一个控制器
在方法handleRequest 前面加上 @RequestMapping("/index") 表示路径/index会映射到该方法上
将上一篇的博客改为注解方式:
1、修改springmvc-servlet.xml
去掉映射相关的配置,因为已经使用注解方式了
增加
表示从包controller下扫描有@Controller注解的类
2、修改IndexController
@Controllerpublic classIndexController {
@RequestMapping("/index")public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throwsException {
ModelAndView mav= new ModelAndView("index");
mav.addObject("message", "Hello Spring MVC");returnmav;
}
}
也不需要实现Controller接口
二、文件上传
1、配置web.xml使其允许访问jpg文件
springmvc
org.springframework.web.servlet.DispatcherServlet
1
springmvc
/
default
*.jpg
2、配置springmvc-servlet.xml,开放对上传功能的支持
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
3、upload.jsp文件上传页面
选择图片:4、准备UploadedImageFile封装MultipartFile类型的字段 image ,用于接受页面的注入
packagepojo;importorg.springframework.web.multipart.MultipartFile;public classUploadedImageFile {
MultipartFile image;publicMultipartFile getImage() {returnimage;
}public voidsetImage(MultipartFile image) {this.image =image;
}
}
注意:
这里的字段 image必须和上传页面upload.jsp中的image
保持一致
5、UploadController 上传控制器
packagecontroller;importjava.io.File;importjava.io.IOException;importjavax.servlet.http.HttpServletRequest;importorg.apache.commons.lang.xwork.RandomStringUtils;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.servlet.ModelAndView;importpojo.UploadedImageFile;
@Controllerpublic classUploadController {
@RequestMapping("/uploadImage")publicModelAndView upload(HttpServletRequest request, UploadedImageFile file)throwsIllegalStateException, IOException {//采用随机数来命名图片,防止上传文件名相同的文件会覆盖原文件
String name = RandomStringUtils.randomAlphanumeric(10);
String newFileName= name + ".jpg";//获取web目录下image目录来存放上传后的文件
File newFile = new File(request.getServletContext().getRealPath("/image"), newFileName);
newFile.getParentFile().mkdirs();//复制文件
file.getImage().transferTo(newFile);//把生成的随机文件名传给视图,用来显示
ModelAndView mav = new ModelAndView("showUploadedFile");
mav.addObject("imageName", newFileName);returnmav;
}
}
6、显示图片showUploadedFile.jsp
注意是在page目录下新建jsp文件
7、部署,访问http://localhost:8080/springmvc/upload.jsp