spring框架——day02常用配置和注解

一,SpringMVC常用配置

1.springmvc默认加载的配置文件是WEB-INF下的springmvc-servlet.xml,而我们通常将配置文件放在项目的资源目录中,即classpath下,因此需要配置springmvc加载的配置文件地址。

将配置文件转移至resources中,改名,并修改web.xml:

2.上面的配置中所应用的处理器映射器、处理器适配器以及视图解析器都是默认的,可以修改为注解的使用方式。

在springmvc的配置文件中添加配置:

    <!--注解方式的处理器适配器-->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

    <!--视图解析器
        通过逻辑视图:index
        视图解析器解析逻辑视图(解析出物理视图):prefix(前缀)+逻辑视图+suffix(后缀)
        解析物理视图:/index.jsp -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

注:注解方式的处理器映射器和处理器适配器的配置可以合并为一个配置:
    <mvc:annotation-driven/>

3.在注解方式的配置下,controller的写法将变得非常简单:

@Controller

public class TestController {

@RequestMapping("/test1") // 为该方法配置访问路径

public String test1() {

System.out.println("Hello,SpringMVC!");

return "index";

}

@RequestMapping("/test2")

public String test2() {

System.out.println("Hello,test2!");

return "index";

} }

二,Controller中方法的参数

Controller中方法的参数列表,功能非常强大,主要功能有以下两点:

1.接收请求参数; 2.获取servletAPI

1.接收请求参数

写一个用户登录的方法:

// 简单类型的参数,springmvc可以直接帮我们封装成参数列表中声明的类型,比如String,int,double...

public String login(String username, String password){

System.out.println(username);

System.out.println(password);

return null;

}

    // 或者也可以直接接收一个java bean
    public String login(User user){
        System.out.println(user.getUsername());
        System.out.println(user.getPassword());
        return null;
    }

如果请求参数是一个日期,springmvc并不能直接封装到Date中,需要设置一下日期格式:
    public class User {
        private String username;
        private String password;
        @DateTimeFormat(pattern = "yyyy-MM-dd")
        private Date birthday;
        ...
    }

如果请求参数是一个数组类型,我们可以直接通过数组接收:
    @RequestMapping("delSel")
    public String delSel(Integer[] ids) {
        phoneService.delSel(ids);
        return "redirect:list";
    }

如果想要用集合类型来接收数组参数呢?下面的写法可以么?
    @RequestMapping("delSel")
    public String delSel(ArrayList<Integer> ids) {
        phoneService.delSel(ids);
        return "redirect:list";
    }

2.获取servletAPI

可以在Controller方法的形参中直接使用以下类型:

HttpServletRequest

通过request对象获取请求信息

HttpServletResponse

通过response处理响应信息

HttpSession

通过session对象得到session中存放的对象

Model/ModelMap

model是一个接口,modelMap是一个接口实现 。

作用:将model数据填充到域中。

        public String login(User user, HttpServletRequest request, HttpSession session,
                            HttpServletResponse response, Model model)

三,Controller中方法的返回值

可以为Controller中的方法指定三种返回值类型:

ModelAndView

指定视图,并且把model数据放到域中

void

如果返回值为void的时候,可以在controller方法形参上定义request和response,使用request或response指定响应结果

String

逻辑视图名称

四,SpringMVC常用注解

@RequestMapping

声明在方法上:

@RequestMapping(value = "/list", method = RequestMethod.GET)

通过value属性配置该方法的访问路径

通过method属性指定该方法允许的访问方式

声明在类上:
    @RequestMapping("/person")
        窄化请求,可以对请求URL进行分类管理,限制访问该类中的URL必须先访问class类上加上的@RequestMapping注解。
        例如:/person/add,/person/list...

@RequestParam

该注解用来标注一个请求参数:

form中:

controller中:

public String login(@RequestParam(value="username",required=true,defaultValue="noname") String uname)

value:@RequestParam(value="username")等同于@RequestParam("username")

required:参数是否必填

defaultValue:设置默认值

@PathVariable

将路径的一部分作为请求参数,RESTful的基础。

@RequestMapping("/findById/{id}")

public String findById(@PathVariable Integer id, Model model) {

Phone phone = phoneService.findById(id);

model.addAttribute("phone", phone);

System.out.println(".........................");

return "edit";

}

原文地址:https://www.cnblogs.com/memo-song/p/9157369.html

时间: 2024-10-14 12:04:14

spring框架——day02常用配置和注解的相关文章

spring框架学习(五)注解

spring框架学习(五)注解 注解Annotation,是一种类似注释的机制,在代码中添加注解可以在之后某时间使用这些信息.跟注释不同的是,注释是给我们看的,java虚拟机不会编译,注解也是不编译的,但是我们可以通过反射机制去读取注解中的信息.注解使用关键字@interface,继承java.lang.annotition.Annotition spring框架为我们提供了注解功能. 使用注解编程,主要是为了替代xml文件,使开发更加快速.但是,xml文件的使用就是解决修改程序修改源代码,现在

基于Spring框架的Shiro配置

一.在web.xml中添加shiro过滤器 Xml代码   <!-- Shiro filter--> <filter> <filter-name>shiroFilter</filter-name> <filter-class> org.springframework.web.filter.DelegatingFilterProxy </filter-class> </filter> <filter-mapping&g

Spring MVC 4常用的那些注解

Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版本虽然发生了很大的变化,但注解的特性却是一直延续下来,并不断扩展,让广大的开发人员的双手变的更轻松起来,这都离不开Annotation的强大作用,今天我们就一起来看看Spring MVC 4中常用的那些注解吧. 1. @Controller Controller控制器是通过服务接口定义的提供访问应用

详解Spring MVC 4常用的那些注解

Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版本虽然发生了很大的变化,但注解的特性却是一直延续下来,并不断扩展,让广大的开发人员的双手变的更轻松起来,这都离不开Annotation的强大作用,今天我们就一起来看看Spring MVC 4中常用的那些注解吧. 1. @Controller Controller控制器是通过服务接口定义的提供访问应用

[转]Spring MVC 4常用的那些注解

Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版本虽然 Controller控制器是通过服务接口定义的提供访问应用程序的一种行为,它解释用户的输入,将其转换成一个模型然后将试图呈献给用户. 1 2 3 4 5 6 7 8 9 10 11 12 13 <?xml version="1.0" encoding="UTF-8&

PHP框架——TP_0001----ThinkPHP常用配置

ThinkPHP惯例配置讲解 分类:PHP 时间:2015年8月18日 ThinkPHP框架是国人开发的优秀PHP框架之一,ThinkPHP文档还有代码注释都是中文的,学习起来非常的顺手.下面主要介绍下ThinkPHP惯例配置讲解(ThinkPHP\Conf\convention.php)框架默认的设置,包括应用相关的配置.PHP cookie和session的设置.ThinkPHP的框架自己的配置.数据库连接和数据缓存配置.日志设置.错误模板的配置.模板引擎的配置和布局的设置.模板标签和系统变

Spring框架bean的配置(2):SpEL:引用 Bean、属性和方法。。。

1.SpEL,实现 Person类,其属性如下,其get,set,tostrong方法就不写了 private String name; private Car car; private String city;//city属性是引用了Address中city的属性 private String info;//根据car的price属性来确定info,price大于30万,不大于30万 car类,其属性如下,set,get,tostring方法就不写了 private String brand;

spring在整合框架中常用配置的bean

1 数据源 1.1spring默认的数据源DriverManagerDatasource <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"><

Spring框架bean的配置(3):基于注解的配置,Autowired 自动装配 Bean,泛型依赖注入

1.基于注解的配置: @Component: 基本注解, 标识了一个受 Spring 管理的组件 @Respository: 标识持久层组件 @Service: 标识服务层(业务层)组件 @Controller: 标识表现层组件 建立接口:UserRepository package com.atguigu.spring.beans.annotation.test; public interface UserRepository { void save(); } 建立类:UserReposito