SpringMvc入门
来源:互联网 发布:粤贵银手机行情软件 编辑:程序博客网 时间:2024/06/11 03:36
1、简介
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。
SpringMvc是Spring web的一个模块,可以代替Struts,能完成Strust能完成的所有工作,并且能完成struts不能完成的工作,如处理请求的时候的中文乱码问题
2、使用步骤
导入jar包
1. 在web-Inf下的web.xml文件下配置
<!--配置核心的Servlet--> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!--表示的是直接将配置文件放置到了Src的根目录下--> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet>
- 接着配置SpringMvc.xml文件
<!--加载注解的驱动--> <mvc:annotation-driven></mvc:annotation-driven> <!--扫描类--> <context:component-scan base-package="要扫描的文件路径"></context:component-scan>
3添加Controller
1>使用注解的方式添加Controll
@Controller 设置Controll
@RequestMapping(value=”/value” method=RequestMethod.GET) 请求映射 ,value的值就是action 可以设置请求方式
2>使用继承Controller类的方式
配置action
<bean id="userAction" class=""></bean>
配置映射器
可以决定请求url对应的action
第一种系统默认的映射器
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
第二种需要配置properties
ac.action与id为userAction的action对应
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/ac.action">userAction</prop> </props> </property>
视图解析器
用于解析视图对应的真实路径
如此可以处理.action/.jsp的文件
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/jsp/"/><property name="suffix" value=".jsp"/></bean>
配置SimpleControllerHandlerAdapter适配器
需要编写的Controller实现Controller(业务控制方法handleRequest)接口
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
配置HttpRequestHandlerAdapter适配器需要Controller实现HttpRequestHandler接口
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>
Controller中多种的业务控制方法的编写
方法的编写很灵活,返回值可以是空,String,参数可以说ModelAndView HttpUrlRequest,HttpUrlResponse,String 等,必须加上注解@RequestMapping,其中value值是Struts中action的类名
日期类型转换
由于SpringMVC不能把String类型的数据转换成Date类型的数据,所以必须转换
在JSP页面中使用fmt标签
<input type="text" name="" value='<fmt:formatDate value="${hiredate}" type="date"/>'/>
在action中编写一个日期类型转换器
方式一:
编写一个类继承AbstractCommandController
重写里面的方法
AbstractCommandController的业务控制方法是handle
@Override protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception { binder.registerCustomEditor(Date.class, new CustomDateEditor( new SimpleDateFormat("yyyy-MM-dd"), true)); }
方式二使用注解
@InitBinder实现日期格式的初始化的方法注解,其他不变
SpringMVC可实现Struts2的数据回显的功能
同时也使用了Struts2的数据的自动封装
1、封装数据到对象中
2、使用Controll接收参数并使用这个对象接收
3、在表单中的name一定要与实体对象的属性对应
4、回显数据的时候要使用${属性名}的方式
部分代码如下
用户名:<input type="text" name="name" id="name" value="${admin.name}" /><br />
SpringMVC的数组参数的收集
实现与数据回显相反的功能
1、在JSP页面创建多个CheckBox用于提供数据到数组中
2、接收的参数的名必须与CheckBox的name保持一致,否则不能进行参数的收集,收集的参数是value的值
JSP中
<input type="checkbox" name="select" value="2" />
Controll中
@RequestMapping(value="/login.action") public String login(int[] select){ for (int i = 0; i < select.length; i++) {System.out.println("收集到的数据是:"+select[i]); } return "/index.jsp"; }
SpringMVC中的文件上传的功能
Spring提供的文件上传的类
org.springframework.web.multipart.commons.CommonsMultipartResolver
1、相关配置如下
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--配置的是上传文件的最大的大小 30M--> <property name="maxUploadSize" value="31457280"></property> <!--配置的上传文件的时候的最大的缓冲区的大小--> <property name="maxInMemorySize" value="4096"></property> <!--配置的是文件的默认的编码格式--> <property name="defaultEncoding" value="UTF-8"></property> </bean>
2、表现层的编写
请求数据
<input type="file" name="file1" id="file1" value="" />
3、Controll的编写
@RequestParam(“file1”)CommonsMultipartFile file的意思是把上面的请求中name是file1的封装到后面的对象中
@RequestMapping("/fl.action") public String getImg(@RequestParam("file1")CommonsMultipartFile file) throws IOException{ file.transferTo(new File("E:\\")); return ""; }
对结果的转发和重定向
只是对上面的Controll的返回值改写为
重定向由于没有使用同一个Request所以要写参数
转发只能在同一个工程中进行,重定向任何地方都可以访问
return "forward:/list.action"; return "redirect:/list.action?userName="+userName+"&userPwd="+userPwd;
- SpringMVC-----2、SpringMVC入门
- springMVC-springMVC入门实例
- SpringMVC入门(搭建SpringMVC)
- springMvc入门--初识springMvc
- 【SpringMVC】SpringMVC入门
- springMVC入门
- SpringMVC入门
- SpringMVC入门
- springMVC入门
- springMVC入门
- SpringMVC入门
- springMVC入门
- springMVC入门
- springMVC入门
- springMVC入门
- springmvc入门
- SpringMVC入门
- SpringMVC入门
- CXF和Axis2
- session基础
- 将智能机器人的“大脑”放在云端网络上,他们如何用区块链技术解决信息安全问题?
- RESTful
- sbt安装及测试
- SpringMvc入门
- 我为什么不继续做java,用4个月转做了Hadoop开发?
- 大牛谈看文献的方法,共勉之
- 约瑟夫环(JosephProblem)
- FILE与文件描述符的对比
- Xamarin XAML语言教程Xamarin.Forms中活动指示器的显示隐藏
- android基础复习
- mysql 远程连接 mySql数据库
- linux常用命令