标签:表示 springmvc session stp adapter public 适配 print 提交
1 核心控制器接受用户请求
2 核心控制器根据 用户的 处理器映射器 找到相关的handler(handler里面包含拦截器以及我们写的hanlder
3 核心控制器 通过处理器适配器执行 相关的handler 并返回给ModelAndView
4 核心控制器吧这个交给视图解析器 视图解析器进行解析 返回view
5 核心控制器 填充数据渲染视图
6 核心控制器 返回东西给用户
1 在web.xml中配置核心控制器 接受请求 并配置相关过滤器
(1)针对jtomcat8.0 后的post方式的中文乱码配置如下
<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> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
(2)核心控制器配置如下:
<servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring_mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- Map all requests to the DispatcherServlet for handling --> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
2 在springmvc全局配置中 配置处理器映射器,配置处理器适配器 配置视图解析器
<!-- 1配置处理器映射器 -->
<!-- 我们这里使用注解处理器映射器 也就是说 我们后面的开发是基于注解的 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
<!-- 2配置处理器适配器 -->
<!-- 我们这里使用注解处理器映射器 凡是class上面有@controller的注解 注解处理器映射器都能够处理 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
<!-- 3配置视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
第一步可以用<mvc:annotation-driven>代替。
<!-- 配置hander-->
要么用前面的方式配置适配器和映射器 要么用下面这种方式:
<!-- 1配置处理器映射器 --> <context:component-scan base-package="com.cc.web"></context:component-scan> <!-- 我们这里使用注解处理器映射器 也就是说 我们后面的开发是基于注解的 --> <mvc:annotation-driven></mvc:annotation-driven>
配置试图解析器后默认走试图解析器中 如果需要走其他路径 则按下面操作:
forward和redirect 中的 /均表示当前项目的的根
@RequestMapping("/test") public String test(){ System.out.println("thist is a test"); return "forward:/index.jsp"; } @RequestMapping("/test1") public String test1(){ System.out.println("thist is a test"); return "redirect:/index.jsp"; }
ModelAndView 用法
默认支持哪些类型:
HttpServletRequest、response、session、Model(用于将数据填充到request域)
requestParam注解:用于绑定单个请参数的名称和方法形参名一致方可绑定。
public ModelAndView test2(@RequestParam(value="aaa") String aaa){ }
商品修改数据回显:
注意在进入修改页面的controller方法中和提交修改商品信息方法model.addAttribute方法设置的key一致。
ModelAndView andView = new ModelAndView();
andView.addObject("u", user);
// 设置页面的地址
andView.setViewName("/show_pojo.jsp");
使用@ModelAttribute,作用于将请求pojo数据放到Model中回显到页面
//会把该user对象填充到request中 并且名字叫做u
public ModelAndView reShowPojo(@ModelAttribute(value="u") User user)
使用@ModelAttribute将公用的取数据的方法返回值传到页面,不用在每一个controller方法通过Model将数据传到页面。
显示:
1 导入夹包
commons-fileupload-1.3.3.jar
commons-io-2.1.jar
2 在spring_mvc.xml中配置文件上传解析器
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 指定文件中文名的编码 --> <property name="defaultEncoding" value="UTF-8" /> <!-- 指定所上传文件的总大小,单位字节。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 --> <property name="maxUploadSize" value="3145728" /> </bean>
3 写文件上传的表单项(注意文件上传的name属性 后面处理时需要和name同名)
<form action="${pageContext.request.contextPath }/fileup" method="post" enctype="multipart/form-data">
<input type="file" name="fi" ></br>
<input type="submit" value="submit">
</form>
4 文件上传逻辑处理
@Controller public class FileUp { @RequestMapping("/fileup") // file的name必须和方法的形参一致。并且表单的 public void file(MultipartFile fi,HttpServletResponse response) { System.out.println(fi.getOriginalFilename()); //直接写到某地各方 File dirFile = new File("d:/upload/"+System.currentTimeMillis()+fi.getOriginalFilename()); if(!dirFile.exists()) { dirFile.mkdirs(); } try { fi.transferTo(dirFile); response.sendRedirect("/mybatis_ddd/NewFile.jsp"); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
标签:表示 springmvc session stp adapter public 适配 print 提交
原文地址:https://www.cnblogs.com/MyJavaStudy/p/9274261.html