SpringMVC项目主要有以下几个部分组成:(1)基于注解配置SpringMVC在页面输出“Hello Spring MVC”,(2)Spring MVC接受表单数据(3)客户端跳转(4)页面显示session中记录的访问次数例子(5)上传文件(6)拦截器。
2, 在WEB-INF目录下的springmvc-servlet.xml,与上一步中的springmvc对应,在springmvc-servlet.xml中添加<context:component-scan base-package="controller" />表示从包controller下扫描有@Controller注解的类。
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><br>
<property name="prefix" value="/WEB-INF/page/" /><br>
<property name="suffix" value=".jsp" /></bean><br>
4,在controller包中,对HelloController类加上@Controller注解,表示该类是一个控制器,在方法handleRequest前面加上@RequestMapping("/hello") 表示路径/hello会映射到该方法上。
3,controller包下创建控制器ProductController,add方法映射/addProduct路径,为add方法准备一个Product参数,用于接收注入。最后跳转到showProduct页面显示用户提交的数据,在showProduct页面中用EL表达式显示用户提交的名称和价格 。
<servlet-mapping><br>
<servlet-name>default</servlet-name><br>
<url-pattern>*.jpg</url-pattern><br>
</servlet-mapping> <br>
表示允许访问*.jpg。并且必须加在springmvc的servlet之前。
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/><br>
3,upload.jsp上传页面:上传页面,需要注意的是form的两个属性必须提供,method="post" 和 enctype="multipart/form-data" 缺一不可。上传组件,增加一个属性: accept="image/*" 表示只能选择图片进行上传。
4,准备UploadedImageFile:在UploadedImageFile中封装MultipartFile类型的字段 image ,用于接受页面的注入。这里的字段image必须和上传页面upload.jsp中的image
保持一致。
1)方法的第二个参数UploadedImageFile 中已经注入好了 image<br>
2)通过 RandomStringUtils.randomAlphanumeric(10);获取一个随机文件名。 因为用户可能上传相同文件名的文件,为了不覆盖原来的文件,通过随机文件名的办法来规避<br>
3)根据request.getServletContext().getRealPath 获取到web目录下的image目录,用于存放上传后的文件。<br>
4)调用file.getImage().transferTo(newFile); 复制文件<br>
5)把生成的随机文件名提交给视图,用于后续的显示。<br>
/** 拦截所有<br>
/category/** 拦截/category路径下的所有<br>