springmvc后台获取表单提交的数据方式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cy19734682/article/details/52925712

在基于springmvc的web项目中,后台获取前台提交的数据方式有多种。

1、通过注解ModelAttribute直接映射表单中的参数到POJO。在from中的action写提交的路径,然后再input的name写参数的名称。

<form action="user/register.do" method="post" id="registerForm">
		<div>
			<input type="text" name="email" class="email" placeholder="输入邮箱地址" οncοntextmenu="return false" οnpaste="return false" />
		</div>
		<div>
			<input type="text" name="username" class="username" placeholder="您的用户名" autocomplete="off"/>
		</div>
		<div>
			<input type="password" name="password" class="password" placeholder="输入密码" οncοntextmenu="return false" οnpaste="return false" />
		</div>
		<div>
			<input type="password" name="confirm_password" class="confirm_password" placeholder="再次输入密码" οncοntextmenu="return false" οnpaste="return false" />
		</div>
		<div>
			<input type="text" name="mobilePhone" class="mobilePhone" placeholder="输入手机号码" autocomplete="off" id="number"/>
		</div>
		<div>
			<input type="text"  class="kaptchaImage" name="kaptchaImage" style="width:150px;"
			 placeholder="输入验证码" autocomplete="off"/>
			 
			 <img src="image/captcha-image.do" width="110" height="40" id="kaptchaImage" 
			 	οnclick="changeValidateCode(this);" style="margin-bottom:-15px"/>   
		</div>

		<button id="submit" type="submit">注 册</button>
	</form>
    在后台用@ModelAttribute("form")获取整个POJO类的数据。当获取不是POJO里面的参数的时候使用@RequestParam获取。

@RequestMapping("/register.do")
	@ResponseBody
	public ModelAndView register(@ModelAttribute("form") Users usrs,RedirectAttributes arrt,
		@RequestParam("confirm_password")String repassowrd,@RequestParam("kaptchaImage")String kaptchaImage){
		
		String kaptchaRandom=(String)session.getAttribute(Constants.KAPTCHA_SESSION_KEY);
		
		MkResult result=userService.addUsers(usrs,repassowrd,kaptchaRandom,kaptchaImage);
		ModelAndView modelAndView=null;
		
		if(result.getStatus()==0){
		
			arrt.addFlashAttribute("states",result.getStatus());
	
			modelAndView=new ModelAndView("redirect:/user/toLogin.do");
		
		}else {
			arrt.addFlashAttribute("states",0);
			modelAndView=new ModelAndView("/register.jsp");
		}
		
		return modelAndView;

	}

2、使用AJAX的方式提交数据。

当参数数量比较多的时候,可以把参数包装成json传回后台。

$("#zhuce").click(function(){
			var saveDataAry=[];  
			  var email1 = $(".email").val().trim();
		      var username1 = $(".username").val().trim();
		      var password1=$(".password").val().trim();
		      //var confirm_password1 = $(".confirm_password").val().trim();
		      var phone_number1 = $(".phone_number").val().trim();
		      var data1={email:email1,username:username1,password:password1,mobilePhone:phone_number1};
		      $.ajax({
		          url:"user/register.do",
		          type:"post",
		          dataType:"json",   
		          data:data1,
		          success:function(result){
		            //result是服务器返回的json结果
		            if(result.status){
		               alert(result.data);
		            }else {
		              alert(result.msg);
		            }
		          },
		          error:function(){
		              alert("发生异常,请重试!");
		            }
		       });
			
		});
  

 在后台获取参数的时候,可以直接在方法中写传入的参数,注意参数名称要和ajax中data的参数名称一致,否则就要用@RequestParam指定参数名称。也可以用@ModelAttribute映射POJO,但data的参数名称要和POJO的变量名称一致。

 

@RequestMapping(value = "/register1.do")
	@ResponseBody
	public MkResult registe1r(@ModelAttribute("form") Users usrs,@RequestParam("email")String email,String username,String password,String mobilePhone){
		System.out.println(email+";"+username+";"+password+";"+mobilePhone);
		System.out.println(usrs.getEmail());
		MkResult mkResult=new MkResult();
		mkResult.setStatus(1);
		mkResult.setData("呵呵");
		mkResult.setMsg("加载成功");
		
		return mkResult;

	}











展开阅读全文
博主设置当前文章不允许评论。

没有更多推荐了,返回首页