您的位置:首页 > 移动开发

SpringMVC学习(2):使用@RequestMapping映射请求方式

2017-04-21 20:30 417 查看
在上一篇文章中其实已经使用了@RequestMapping修饰类

@RequestMapping除了可以修饰方法,还可以修饰类,类方法的路径是相对于类的,如果类没有配置路径,那么类方法的路径就是相对于目录的。

这一篇文章讲一下使用@RequestMapping映射请求参数

一、使用@RequestMapping映射请求方法

在@RequestMapping中可以使用method定义请求方法,例如上篇文章讲的HelloWorld中其实就可以将HelloWorld.java写成这样

package springmvc;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/springmvc")
public class HelloWorld {

private static final String SUCCESS = "success";

@RequestMapping(value="/helloworld", method=RequestMethod.GET)
public String helloWorld() {
System.out.println("hello world");
return SUCCESS;
}
}
接下来试试POST方法,为了方便起见,我直接修改原有的HelloWorld程序了。

先在index.jsp中添加一个表单

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>SpringMVC</title>
</head>
<body>

<form action="springmvc/testPostMethod" method="post">
<input type="submit" value="submit"/>
</form>

</body>
</html>
将HelloWorld.java写成这样:

package springmvc;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/springmvc")
public class HelloWorld {

private static final String SUCCESS = "success";

@RequestMapping(value="/testPostMethod", method=RequestMethod.POST)
public String testPostMethod() {
System.out.println("testPostMethod...");
return SUCCESS;
}
}
运行起来效果是这样的:



 


二、使用Ant风格匹配URL

Ant风格资源地址支持3种匹配符:

?:匹配文件名中的一个字符

*:匹配文件名的任意字符

**:匹配多层路径

修改一下HelloWorld.java:

package springmvc;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/springmvc")
public class HelloWorld {

private static final String SUCCESS = "success";

@RequestMapping("/testAntPath/*/abc")
public String testAntPath() {
System.out.println("testAndPath");
return SUCCESS;
}
}
然后改一下jsp测试一下:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>SpringMVC</title>
</head>
<body>

<a href="springmvc/testAntPath/mnxyz/abc">Test AntPath</a>

</body>
</html>可以发现,把<a>标签的href属性中的mnxyz改成别的字符串也可以成功映射回testAntPath()这个函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc