SpringMVC a标签问号传值后台接收(转)

 

SpringMVC 页面数据传递到后台

(转)CSDN:https://blog.csdn.net/benxiaohai888/article/details/78529295

 

方式一 通过@RequestParam注解来接收

方式二 直接用同名变量来接收

方式三 通过request来接收

下面我们借用a标签来携带数据传递到后台继续测试,a标签提交的方式为GET提交。

准备一个测试jsp页面index.jsp,内容如下:

  1. <!--页面代码-->
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <!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=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<h3>SpringMV参数传递测试</h3>
    	<a href="mfc/showwithparam?msg=welcomespringmvcparam">测试带参数(@RequestParam注解来接收)</a>
    	<br />
    	<a href="mfc/showwithparam2?msg=welcomespringmvcparam">测试带参数(同名变量来接收)</a>
    	<br />
    	<a href="mfc/showwithrequest?msg=welcomespringmvcparam">测试带参数(request来接收)</a>
    	<br />
    </body>
    </html>

     

下面是分别使用三种方式接收数据的方式:
方式一 通过@RequestParam注解来接收

@Controller
@RequestMapping("mfc")
public class MyFirstController {
	/**
	 * 传递参数到控制器的的一种方式(@RequestParam注解来接收)
	 * 
	 * @param str
	 * @return
	 */
	@RequestMapping(value = "showwithparam")
	public String showWithParam(
			@RequestParam(value = "msg", required = false, defaultValue = "默认值") String str) {
		System.out.println("showwithparam...");
		System.out.println("接收页面传递的参数msg:" + str);
		return "main";
	}	
}

 

$tr.append('<td><a href="user/userupdate?userid='+user.userid+'">编辑</a></td>');
@RequestMapping("/userupdate")
	public ModelAndView doUpdate(@RequestParam("userid") Integer userid){
		ModelAndView mv = new ModelAndView("showa1a");
		User user = new User();
		user.setUserid(userid);
		List<User> list = userService.doFindBySome(user);
		mv.addObject("user", list.get(0));
		return mv;
	}

代码解释:通过@RequestParam来接收参数, 表示页面传递参数的名字叫msg,这里定义一个名叫str的变量来接收msg的值,这种方式,要求必须传递过来一个名叫msg的参数,没有传递这个参数的时候就会出现400错误

方式二 直接用同名变量来接收


@Controller
@RequestMapping("mfc")
public class MyFirstController {
 
 
	/**
	 * 传递参数到控制器的的二种方式(同名变量来接收)
	 * 
	 * @param msg
	 * @return
	 */
	@RequestMapping(value = "showwithparam2")
	public String showWithParam2(String msg) {
		System.out.println("showWithParam2...");
		System.out.println("接收页面传递的参数msg:" + msg);
		return "main";
	}
}

 

代码解释:这里添加了一个参数msg,这个参数和页面提交的数据的名称一致为msg,不管页面是否传递msg参数,都不会报错,传递了,就接收,没有传递,就是null。

方式三 通过request来接收

@Controller
@RequestMapping("mfc")
public class MyFirstController {
 
	/**
	 * 在业务方法中,如果需要使用到内置对象,只需要在方法中,定义对应的形参,即可。
	 * 
	 * @param request
	 * @return
	 */
	@RequestMapping(value = "showwithrequest")
	public String showWithRequest(HttpServletRequest request) {
		System.out.println("showwithrequest...");
		String msg = request.getParameter("msg");
		System.out.println("通过request接收的msg:" + msg);
		return "show";
	}
}

代码解释:通过request对象接收页面传递的数据msg。

附加:利用jsp实现的a标签传值

<c:forEach items="${list}" var="manu">
					<tr>
						<td><input type="checkbox"></td>
						<td>${manu.makerid }</td>
						<td>${manu.company }</td>
						<td>${manu.principalname }</td>
						<td>${manu.companytel }</td>
						<td>${manu.postcode }</td>
						<td>${manu.address }</td>
						<td><a href="custom/showe1a/${manu.makerid }">编辑</a></td>
					</tr>
				</c:forEach>
@RequestMapping("/showe1a/{makerid}")
	public ModelAndView toUpdate(@PathVariable("makerid") Integer makerid){
		ModelAndView mv = new ModelAndView("showe1a");
		mv.addObject("manu", manufacturerService.getOneManufacturer(makerid));
		return mv;
	}

 

转载于:https://my.oschina.net/u/3907139/blog/1844668

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值