您的位置:首页 > 编程语言 > Java开发

spring mvc在注解开发下表单提交到不了Controller方法的解决手段

2016-05-10 10:28 501 查看
这个问题很诡异,不太懂为什么,但是知道如何解决,如果知道为什么的话希望能评论我下!

表单提交代码如下:

<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一直,这样便解决了问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: