但行好事
莫论前程❤

SpringMVC详解(三)—–基于注解的入门实践

目录

  • 1、在 web.xml 文件中配置前端处理器
  • 2、在 springmvc.xml 文件中配置处理器映射器,处理器适配器,视图解析器
  • 3、编写 Handler
  • 4、编写 视图 index.jsp
  • 5、在浏览器中输入:http://localhost:8080/SpringMVC_03/hello

1、在 web.xml 文件中配置前端处理器(同上)

2、在 springmvc.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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!--注解处理器映射器  -->   
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>

    <!--注解处理器适配器 实现了HandlerAdapter接口 -->   
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>  

    <!--使用mvc:annotation-driven可以代替上面的映射器和适配器
        这里面会默认加载很多参数绑定方法,比如json转换解析器就默认加载,所以优先使用下面的配置
      -->
    <!-- <mvc:annotation-driven></mvc:annotation-driven> -->


    <!--单个配置Handler  -->
    <!-- <bean class="com.ys.controller.HelloController"></bean> -->

    <!--批量配置Handler,指定扫描的包全称  -->
    <context:component-scan base-package="com.ys.controller"></context:component-scan>

    <!-- 以注解的方式开启事务管理器 -->
    <!-- <tx:annotation-driven/> -->

    <!--配置视图解析器  -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 返回视图页面的前缀 -->
        <property name="prefix" value="/WEB-INF/view/"></property>
        <!-- 返回页面的后缀 -->
        <property name="suffix" value=".jsp"></property>
    </bean>
</beans>

3、编写 Handler

//使用@Controller注解表示这个类是一个Handler
@Controller
public class HelloController {

    //@RequestMapping注解括号里面的表示访问的URL
    @RequestMapping("hello")
    public ModelAndView hello(){
        ModelAndView modelView = new ModelAndView();
        //类似于 request.setAttribute()
        modelView.addObject("name","张三");
        //配置返回的视图名,由于我们在springmvc.xml中配置了前缀和后缀,这里直接写视图名就好
        modelView.setViewName("index");
        //modelView.setViewName("/WEB-INF/view/index.jsp");
        //modelView.setViewName("jsonView");
        return modelView;
    }
}

注意@Controller注解和@RequestMapping注解的用法

注:

返回数据为json数据时

modelView.setViewName("jsonView");    指定视图名为jsonView或者jsonpView

并在xml配置文件中添加配置

<bean id="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
        <!-- another filter caches -->
        <property name="disableCaching" value="false"/>
</bean>
<bean id="jsonpView" class="com.feinno.perftrace.web.util.MappingJackson2JsonpView">
        <!-- another filter caches -->
        <property name="disableCaching" value="false"/>
</bean>

前端传入json数据映射成对应的java对象(即json数据转成对象)

converter转换器

    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
                <property name="objectMapper" ref="jsonObjectMapper"/>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
<bean id="jsonObjectMapper" 
       class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
</bean>

4、编写 视图 index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
hello:${name}
</body>
</html>

5、在浏览器中输入:http://localhost:8080/SpringMVC_03/hello

img

赞(1) 打赏
未经允许不得转载:刘鹏博客 » SpringMVC详解(三)—–基于注解的入门实践
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏