SpringMVC---使用

关键词

@RequestMapping

@RequestMapping("/xxxx")
功能:在方法,类中添加该注解,相当于:浏览器发送请求xxxx。会访问该类中的方法。比如:

public class Test{
	@RequestMapping("/one")
    public String one(){
		return "one";
    }
}

返回的one会给视图解析器进行解析拼接,然后跳转到该页面。
测试url:http://localhost:8080/one

@ResponseBody

就像上面的情况:

public class Test{
	@ResponseBody
	@RequestMapping("/one")
    public String one(){
		return "one";
    }
}

当我们加入了该注解,就相当于,这个“one”只是作为响应体,而不是映射某一个文件。

实现转发和重定向

关键词:

  • redirect:重定向
  • forward:转发

没有视图解析器的情况

记得把视图解析器的代码注释掉先。

默认不写的情况是转发。

关于转发与重定向的相关信息请看这篇文章。

@Controller
@RequestMapping("/two")
public class TwoController {


    @RequestMapping("/test1")
    public String getTest1(Model model){

        //使用重定向
        return "redirect:/index.jsp";
    }

    @RequestMapping("/test2")
    public String getTest2(Model model){

        //使用重定向
        return "forward:/WEB-INF/jsp/test.jsp";
    }

    @RequestMapping("/test3")
    public String getTest3(Model model){

        //使用重定向
        return "/WEB-INF/jsp/test.jsp";
    }


}

有视图解析器的情况

使用重定向和转发的情况一样,但是要注意的是,有视图解析器的话,无论是重定向还是转发,都会对字符串进行拼接

数据的处理

传递参数是一个对象:

User.java:


public class User {

    private String name;
    private int age;
	....
}
@Controller
@RequestMapping("/two")
public class TwoController {
    

    @RequestMapping("/test1")
    public String getTest1(User user){
        
        System.out.println(user);

        return "test";
    }
}

为了将前端传递的数据都封装成一个user对象,字段名必须要根据user的属性进行匹配,不然为空。

访问地址:http://localhost:8080/two/test1?name=tom&age=5

提交域名名称与处理方法参数不一致

关键词:@RequestParam(“xxxx”)

括号内的名称为域名提交的名称。

@Controller
@RequestMapping("/two")
public class TwoController {


    @RequestMapping("/test1")
    public String getTest1(@RequestParam("username") String name){

        System.out.println(name);

        return "test";
    }
}

乱码问题:

在web.xml配置Spring提供的乱码过滤器:

<!-- 中文乱码过滤器 -->
<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值