认识springmvc(1)

springmvc也属于spring , 需要有spring的架包作为支撑才能跑起来

Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。

实现springmvc有两种形式

( 1 )springmvc配置文件的方式

需要导入jar包

在这里插入图片描述

写个controller层的类(springmvc就是控制层框架)

 public class HelloController implements Controller{

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		 System.out.println("--hello--");
		 ModelAndView mv = new ModelAndView();
		 mv.setViewName("/hello.jsp");
		return mv;
	}

}
 

springmvc的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans.xsd">
 
 <!-- 处理器映射器 将bean的name作为url进行查找 ,
	              需要在配置Handler时指定beanname(就是url) 所有的映射器都实现 
		 HandlerMapping接口。 -->
 <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
 <!-- 配置 Controller适配器   -->
  <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
  
  <!--  -->
   <bean class="com.liy.controller.HelloController" name="/hello"/>
 
 </beans>

web.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>springMVC-01</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>




   
   <servlet>
   	<servlet-name>springmvc</servlet-name>
   	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	
  	<init-param>
  		<param-name>ContextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  
   </servlet>


     
     <servlet-mapping>
     	<servlet-name>springmvc</servlet-name>
     	<url-pattern>/</url-pattern>
     </servlet-mapping>


</web-app>
 

jsp页面

<body>
	<h1>hello-springMVC</h1>
</body>
 

( 2 )注解的方式

只有控制层加了注解以及配置文件有不同

controller控制层

@Controller
@RequestMapping("/hello")
public class HelloController {
	
	
	@RequestMapping("/h1")
	 public ModelAndView hello1(){
		System.out.println("hello1"); 
		ModelAndView mv = new ModelAndView();
		mv.setViewName("/hello.jsp");
		return mv;
	 }
	
	
	@RequestMapping("/h2")
	 public ModelAndView hello2(){
		System.out.println("hello2"); 
		ModelAndView mv = new ModelAndView();
		mv.setViewName("/hello.jsp");
		return mv;
	 }

}
 

xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
 
 <!-- 开启springmvc注解 -->
  <mvc:annotation-driven></mvc:annotation-driven>
 
 <!-- 开启扫描 -->
  <context:component-scan base-package="com.liy.controller"></context:component-scan>
  
 </beans>

运行结果

在这里插入图片描述
在这里插入图片描述

springmvc接收参数

@Controller
public class UserController {
	
	@RequestMapping("/add")
	@ResponseBody
	public void add(User user){
		System.out.println(user);
	}
	
	
	@RequestMapping("/add1")
	@ResponseBody
	public void add1(int id,String name,String [] xq){
		System.out.println(id+"-"+name);
		for (String string : xq) {
			System.out.println(string);
		}
	}
 

springmvc返回参数

@Controller
//@SessionAttributes("msg") 以session的方式保存数据
public class MyController {
	
	@RequestMapping("/fun1")	
	public ModelAndView fun1(){
		ModelAndView mv = new ModelAndView();
		mv.addObject("msg", "ModelAndView的msg");
		mv.setViewName("index");
		return mv;
	}
	
	@RequestMapping("/fun2")	
	public String fun2(Map<String, Object> map) {
	 
		map.put("msg", "map的msg");
		 
		return "index";
	}
	
	@RequestMapping("/fun3")	
	public String fun2(Model m) {
		m.addAttribute("msg", "model的msg");
		return "index";
	}
	
	@RequestMapping("/fun4")	
	public String fun5(ModelMap mm){
		mm.addAttribute("msg", "ModelMap的msg");
		System.out.println(111);
		return "index";
	}
}
 

jsp页面接收数据

<body>
    <!-- 直接用el表达式接收即可  默认是request域对象 -->
	<h1>${msg }</h1>
</body>
 

springmvc转换器(string转换成时间) (接收的数据 用getParameter 接收的是string类型 getAttribute 接收是object类型)

转换类

public class StringToDateConverter implements Converter<String,Date>{

	@Override
	public Date convert(String arg0) {
		 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		 try {
			return sdf.parse(arg0);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 return null;
	}

}
 

然后在配置文件中配置

	<!-- 配置一个转换器 -->	
 	<bean id="formatConverter" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
 		<property name="converters">
 			<set>
 				<bean class="com.liy.converter.StringToDateConverter" />
 			</set>
 		</property>
 			
 	</bean>
 	

  
	<!-- 开启mvc注解   conversion-service="formatConverter"   -->
 	<mvc:annotation-driven  conversion-service="formatConverter" ></mvc:annotation-driven>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值