spring mvc开发:基于注解

将上面的项目拷贝一份,拷贝web项目的时候注意该一个地方:

4.1注解第一个例子

  1. 创建web项目
  2. 在springmvc的配置文件中指定注解驱动,配置扫描器
<!-- mvc的注解驱动 -->
    <mvc:annotation-driven />
    <!-- 一旦有扫描器的定义mvc:annotation-driven不需要,扫描器已经有了注解驱动的功能 -->
    <context:component-scan base-package="cn.itcast.springmvc" />

    <!--视图解析器: 前缀+ viewName +后缀 -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- webroot到某一指定的文件夹的路径 -->
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <!-- 视图名称的后缀 -->
        <property name="suffix" value=".jsp"></property>
    </bean>

  [email protected]:标识当前类是控制层的一个具体的实现

  [email protected]:放在方法上面用来指定某个方法的路径,当它放在类上的时候相当于命名空间需要组合方法上的requestmapping来访问。

@Controller//用来标注当前类是springmvc的控制层的类
public class TestController {

    /**
     * @return方法的返回值是ModelAndView中的ViewName
     */
    @RequestMapping("/hello.do")//用来访问控制层的方法注解
    public String hello(){
        System.out.println("TestController.hello()");
        return "jsp1/index";
    }

}

http://localhost:8080/springmvc-2/hello.do

@requestMapping放在类上面:

@Controller//用来标注当前类是springmvc的控制层的类
@RequestMapping("/test")//controller唯一标识或者是命名空间
public class TestController {

    /**
     * @return方法的返回值是ModelAndView中的ViewName
     */
    @RequestMapping("/hello.do")//用来访问控制层的方法注解
    public String hello(){
        System.out.println("TestController.hello()");
        return "jsp1/index";
    }

}

http://localhost:8080/springmvc-2/test/hello.do

4.2注解方式参数

接收参数:

  1. HttpServletRequest可以直接定义在参数的列表,可以使用
/**
     * desc:HttpServletRequest可以直接定义在参数的列表,可以使用
     */
    @RequestMapping("/toPerson.do")
    public String toPerson(HttpServletRequest request){
        String result = request.getParameter("name");
        System.out.println(result);
        return "jsp1/index";
    }

http://localhost:8080/springmvc-2/test/toPerson.do?name=lisi

  2.在参数列表上直接定义要接收的参数名称,只要参数名称能匹配的上就能接收所传过来的数据, 可以自动转换成参数列表里面的类型,注意的是值与类型之间是可以转换的

/**
     * desc:在参数列表上直接定义要接收的参数名称,只要参数名称能匹配的上就能接收所传过来的数据,
     * 可以自动转换成参数列表里面的类型,注意的是值与类型之间是可以转换的
     */
    @RequestMapping("/toPerson1.do")
    public String toPerson1(String name, Integer age, String address,Date birthday){
        System.out.println(name + " ,"+ age + ","+ address +" "+birthday);
        return "jsp1/index";
    }
    /**
     * desc:注册时间类型的属性编辑器
     * http请求的参数都是字符串的形式,需要属性编辑器将其转换成integer等,像上面的name,age,address
     */
    @InitBinder
    public void initBinder(ServletRequestDataBinder binder){
        binder.registerCustomEditor(Date.class,
                new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
    }

http://localhost:8080/springmvc-2/test/toPerson1.do?name=lisi&age=30&address=xinjiang&birthday=2012-12-21

/**
     * desc:传递的参数的名字必须要与实体类的属性set方法后面的字符串匹配的上才能接收到参数,首字符的大小写不区分
     * 请求中传的参数只要是能和参数列表里面的变量名或者实体里面的set后面的字符串匹配的上就能接收到(两个实体有可能接收同一参数)
     */
    @RequestMapping("/toPerson2.do")
    public String toPerson2(Person person){
        System.out.println(person);
        return "jsp1/index";
    }
public class Person {

    private String name;

    private Integer age;

    private String address;

    private Date birthday;

   //setter和getter略,但是是必要的

  /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + ", address=" + address
                + ", birthday=" + birthday + "]";
    }

}

http://localhost:8080/springmvc-2/test/toPerson2.do?name=lisi&age=30&address=xinjiang&birthday=2012-12-21

通过反射利用set方法注入属性值,生成实例

/**
     * desc:对数组的接收
     */
    @RequestMapping("/toPerson3.do")
    public String toPerson3(String[] name){
        for(String result : name){
            System.out.println(result);
        }
        return "jsp1/index";
    }

http://localhost:8080/springmvc-2/test/toPerson3.do?name=lisi&name=zhangsan

时间: 2024-08-26 11:39:21

spring mvc开发:基于注解的相关文章

Spring MVC中基于注解的 Controller

终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 HandlerMapping 来映射出相应的 handler 并调用相应的方法以响应请求.实际上,ControllerClassNameHandlerMapping, MultiActionController 和选择恰当的 methodNameResolver(如 InternalPathMethodNameResolver) 就已经可以在很大程度上帮助我们省去不少的 XML 配置,谁让

spring mvc完全基于注解的参考示例

web配置 public class SpitterWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class<?>[] { RootConfig.class }; } @Override protected Class<?>[]

用Spring MVC开发简单的Web应用

这个例子是来自于Gary Mak等人写的Spring攻略(第二版)第八章Spring @MVC中的一个例子,在此以学习为目的进行记录. 问题:想用Spring MVC开发一个简单的Web应用, 学习这个框架的基本概念和配置. 解决方案: Spring MVC的核心组件是一个控制器(大多数框架都是控制器比较重要吧). 在最简单的Spring MVC应用中,控制器是需要在web.xml文件中配置的唯一Servlet. Spring MVC的控制器通常称作请求分发Servlet(Dispatcher

使用 Spring 2.5 基于注解驱动的 Spring MVC--转

概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 XML 配置文件中定义请求和 Controller 的映射关系,仅仅使用注解就可以让一个 POJO 具有 Controller 的绝大部分功能 —— Spring MVC 框架的易用性得到了进一步的增强.在框架灵活性.易用性和扩展性上,Spring MVC 已经全面超越了其它的 MVC 框架,伴随

使用 Spring 2.5 基于注解驱动的 Spring MVC

使用 Spring 2.5 基于注解驱动的 Spring MVC 原文链接:http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/ 基于注解的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,为 Spring MVC 提供了完全基于注解的配置.本文将介绍 Spring 2.5 新增的 Sping MVC 注解功能,讲述如何使用注解配置替换传统的基于 XML 的 Spring MVC 配置. 概述 继 Spring 2.0

java web开发入门六(spring mvc)基于intellig idea

spring mvc ssm=spring mvc+spring +mybatis spring mvc工作流程 1A)客户端发出http请求,只要请求形式符合web.xml文件中配置的*.action的话,就由DispatcherServlet来处理. 1B)DispatcherServlet再将http请求委托给映射器的对象来将http请求交给对应的Action来处理 2)映射器根据客户的http请求,再对比<bean name="/hello.action如果匹配正确,再将http请

Maven+Hibernate+Spring+Spring MVC开发新闻发布系统

使用Maven+Hibernate+Spring+Spring MVC开发新闻发布系统 课程学习地址:http://www.xuetuwuyou.com/course/163 课程出自学途无忧网:http://www.xuetuwuyou.com 课程介绍 一.课程用到的软件: 1.jdk 1.8 2.eclipse neon 3.tomcat 8 4.jetty 5.MySQL  6.navicat 9+ 二.课程涉及到的技术点 1.Maven基础 2.Maven高级 3.Hibernate

Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法

Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法 在Action中方法的返回值都是字符串行,一般情况是返回某个JSP,如: return "xx":意思是返回到某个JSP页面上 如果想在此Action中跳转到另一个Action中怎样做呢? return "redirect://.do?" 例如: @RequestMapping(params = "action=delete") public String del

spring mvc开发入门实例demo源代码下载,很适合新手入门学习用。

原文:spring mvc开发入门实例demo源代码下载,很适合新手入门学习用. 源代码下载:http://www.zuidaima.com/share/1550463469046784.htm Eclipse + Maven + Spring MVC - Simple Example 源代码框架截图:

spring学习2:基于注解+xml实现ioc和依赖注入

spring学习2:基于注解+xml实现ioc和依赖注入 一.在spring配置文件中开启spring对注解的支持 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&qu