这个问题很诡异,不太懂为什么,但是知道如何解决,如果知道为什么的话希望能评论我下!
表单提交代码如下:
<form class="form clearfix" action="${website}register" method="post"> <h1 class="title">智能码控门禁系统<span class="in">注册</span >/<a href="toLogin" class="out">登录</a></h1> <p class="float"> <label for="name"> <i class="fa fa-envelope"></i>邮箱 </label> <input class="J_email" name="email" placeholder="邮箱地址" required autofocus /> <span class="tips J_emailTip">邮箱输入错误</span> </p> <p class="float"> <label for="tel"> <i class="fa fa-phone"></i>手机 </label> <input class="J_tel" name="tel" placeholder="手机号" required /> <span class="tips J_telTip">手机号输入错误</span> </p>
<input class="J_email" name="email" placeholder="邮箱地址" required autofocus />
关于这一行代码,如果需要在controller方法里面能获取到email参数的话 前端要写为name ="XXX" ,刚开始前端给我写的是type ="XXX" 结果发出请求的时候email不在参数列表里面。
从一开始表单提交的action的地址和后台controller里面方法的url地址就是一样的,但是就是到不了controller方法里面,这里要注意,前端已经定义了参数规则(即为必须输入) :
required
就是这个输入是不能为空的,刚开始测试的时候,我把方法里面的参数全部屏蔽了这样是肯定不能到方法里面的,之前的时候是带着参数的,也到不了方法里面,之前使用注解开发带的参数,如下:
@RequestParam("name") String name
如果用注解开发的话想解决这类问题的话就要在@RequestParam里面加一个require的属性并设置为false,这样就可以进到方法里面了,但是这样问题就出现了,前端的话这个参数是必须输入的,但是后台的话这个参数咱们设置成的是可以不输入的,所以就有了前后台不一致的问题,因此还有一种改正的方法,就是不用注解,如下:
String name,String tel,String pass,String passSure
但是这样的话名称要和前台定义的name一直,这样便解决了问题。
时间: 2024-11-05 13:31:01