springMVC
执行流程:
[图片上传中。。。(1)]
//springmvc重定向 需要ModelMap的对象来存储参数
@RequestMapping(method=RequestMethod.GET,value="springredirect")
public String springRedirect(ModelMap modelMap){
System.out.println("2");
modelMap.put("message","springredirect");
//视图层不用再去解析
//因为值是通过url中传递的,所以要加${param.msg}
return "redirect:hello.jsp";
}
//spring 服务器跳转(转发)
@RequestMapping(method=RequestMethod.GET,value="springforword")
public String springForward(ModelMap modelMap){
System.out.println("3");
modelMap.put("message", "forword");
//视图层不用再去解析
return "forward:hello.jsp";
}
处理中文乱码的方式:
在web。xml中设置编码过滤器
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
获取页面传来的值:
1,页面写什么属性,直接在contronller参数列表中写出即可
public void print(String name,int age){
2。当在传实体类的时候
jsp直接写属性
<form action="student.do" method="post">
<input name="name">
<input name="age">
<input name="number">
<button type="submit"></button>
</form>
controller参数传实体对象,然后直接让实体类用get方法获取
上传文件头文件这样写
<form action="uploadFile.do" method="post" enctype="multipart/form-data">
文件上传
1。配置上传解析器
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"></property>
</bean>
图片无法保存到项目文件夹原因:
http://blog.csdn.net/frost_pig/article/details/52712394
图片保存问题:图片能保存到tomcat下,保存不到Eclipse下的工作区间,导致图片上传后重新部署的时候就消失
源码: String webPath=getServletContext().getRealPath("/")+"upload\"+fileName; (fileName是图片名称)
这句查找出来的就是服务器的文件路径,不是Eclispe的工作区间 。
修改后:String webPath="E:\workplace\Image\WebContent\upload\"+fileName;
这句话就是Eclipse的工作区间的路径
总的来说,我的情况是只有Eclipse的web项目下保存好图片,在发布到服务器的时候,服务器里面的webapp里面自然就有图片了
PS:如果不是发布到本地服务器,就可以直接写成服务器的路径
在此处找到的解决办法:http://m.blog.csdn.NET/article/details?id=47661759
1)@ResponseBody // 直接输出不经过视图层
配置json解析器
<bean id="jsonConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonConverter" />
</list>
</property>
</bean>
<bean id="jsonConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonConverter" />
</list>
</property>
</bean>
web.xml的servlet配置中/*表示所有的都要拦(包括jsp),/不拦jsp