web项目中,前端发送URL请求不外乎两种情况:无参数的请求和带参数的请求。
(一):无参数的请求最简单,例如下面的例子跳转到登录页面:
地址栏效果:http://localhost:8080/web_resource/login
前端代码
<span>已有帐号,<a th:href="@{/web_resource/login}">去登录></a></span>
后端Controller类
@RequestMapping("/web_resource")
@Controller()
public class AccountController {
@RequestMapping("/login")
public String toLogin(){
return "login";
}
}
(二):带参数的请求 这种请求很重要,也是写项目必须掌握的。 常用的带参数的请求有3三种,这个3种分别对应2个注解 ,根据使用场景不一样自行选用。 ①第一种:@RequestMapping(value = “/stumain”,method =RequestMethod.POST) 或者@PostMapping("/stumain"),接收参数不需要参数 比如登录功能,需要提交表单中登录信息,这个时候使用以上注解,会根据表单中name的值自动封装入参数对象(前提是已经根据数据库编写了实体类)Account account。SpringMVC的参数绑定过程是把表单的请求参数,作为控制器中方法参数进行绑定的。
地址栏效果:http://localhost:8080/web_resource/stumain
前端代码
<form method="post" th:action="@{/web_resource/stumain}" >
<div>
<span class="label">用户名</span>
<input type="text" class="cs" name="account"/>
</div>
<div>
<span class="label2">密码</span>
<input type="password" class="cs" name="passwork"/>
</div>
<div th:text="${msg}" style="color: red;"></div>
<div class="item">
<input type="submit" class="butt" value=">确认"/>
<input type="reset" class="butt" value=">重写"/>
</div>
</form>
后端Controller类
@RequestMapping("/web_resource")
@Controller()
public class AccountController {
@RequestMapping(value = "/stumain",method = RequestMethod.POST)
private ModelAndView stuLogin(Account account){
}
}
②第二种:接收参数需要用@PathVariable 用于绑定url中的占位符。例如:请求url中/myresources/{uploader}},这个{uploader}就是占位符。url支持占位符时spring3.0之后加入的。是springmvc支持rest风格URL的一个重要标志。
地址栏效果:http://localhost:8080/web_resource/myresources/web_1114155730693
前端请求格式
<a href="myres" th:href="@{/web_resource/myresources/{uploader}(uploader=${session.account.getId()})}"/>
${session.account.getId()}这个传入存储在Session中的id
后端Controler类
@RequestMapping("/web_resource")
@Controller()
public class AccountController {
@RequestMapping("/myresources/{uploader}")
public String toMyResources(@PathVariable(value = "uploader") String uploader){
}
}
③第三种:接收参数需要用@RequestParam 作用:把请求中指定名称的参数给控制器@Controller中的形参复制 属性: value:请求参数中的名称
地址栏效果:http://localhost:8080/web_resource/myresources?uploader=web_1114155730693
前端请求格式
<a href="myres" th:href="@{/web_resource/myresources(uploader=${session.account.getId()})}"/>
后端Controler类
@RequestMapping("/web_resource")
@Controller()
public class AccountController {
@RequestMapping("/myresources")
public String toMyResources(@RequestParam(value = "uploader") String uploader){
}
}
|