SSM登录账户密码用AJAX提交的数据一直是NULL,大神们帮忙看下哪里出错了

时间:2021-12-24 14:11:26
JSP页面
<div class="logo_box">
<h3>欢迎你</h3>
<form action="#" name="f" method="post">
<div class="input_outer">
<span class="u_user"></span>
<input name="logname" class="text" style="color: #FFFFFF !important" type="text" placeholder="请输入账户" id="tname">
</div>
<div class="input_outer" id="key">
<span class="us_uer"></span>
<input name="logpass" class="text" style="color: #FFFFFF !important; position:absolute; z-index:100;" type="password" placeholder="请输入密码" id="password">
</div>
<div class="mb2"><a  class="act-but submit" style="color: #FFFFFF" id="btn" >登录</a></div>
</form>
</div>

<script type="text/javascript">
$("#btn").click(function(){
if($("#tname").val()==""||$("#password").val()==""){  
              alert("账号或者密码不能为空");  
             return false;  
         }else{  
            $.ajax({  
                 type:"POST",  
                 url:"${APP_PATH}/login",  
                 data:{tname:$("#tname").val(),tpwd:$("#password").val()},  
                 success:function(data){  
                  var str = data.result;
                     //判断输入是否成功,成功则跳转     
                     if("用户名可用!"==data){ 
                      alert("登录成功"); 
                         window.location.href="${APP_PATH}/index.jsp";     
                     }else{  
                         alert("账号密码错误");  
                         window.location.href="${APP_PATH}/login.jsp";
                         return false;  
                     }                           
                }     
             });  
          }
});
</script>


controller
@Autowired
staffInfoService staffinfoService;


/*
 * 登录
 */
@ResponseBody
@RequestMapping(value="/login",method=RequestMethod.POST)
public String Login(staffInfo staffinfo,HttpServletRequest request, HttpServletResponse response,Model model) throws IOException {
String tname=staffinfo.getStaffName();  
        String tpwd=staffinfo.getStaffPassword();  
        staffinfo.setStaffName(tname);  
        staffinfo.setStaffPassword(tpwd);
        staffInfo add=staffinfoService.checkLogin(tname, tpwd); 
        String mes="用户名可用!"; 
         //判断用户名及密码是否正确,正确则登录,错误则提示重新输入  
        if(add!=null){  
            //设置字符集  
            response.getWriter().write(mes);
        }else{  
            mes="用户名或密码不正确!";  
            response.getWriter().write(mes);  
        }  
        return null;  
     } ;


数据一直提交的是NULL   永远都是用户名或密码不正确

5 个解决方案

#1


SSM登录账户密码用AJAX提交的数据一直是NULL,大神们帮忙看下哪里出错了 快来大神帮帮我啊   到底是哪里出问题了

#2


SSM登录账户密码用AJAX提交的数据一直是NULL,大神们帮忙看下哪里出错了

#3


public String Login( @RequestBody staffInfo staffinfo

#4


我看出一点问题,但不确定你的问题是不是这个问题影响的
你java接收一个对象staffInfo 
String tname=staffinfo.getStaffName();  
String tpwd=staffinfo.getStaffPassword();  

但是你前端传的对象跟你后端对象名称匹配不上
{tname:$("#tname").val(),tpwd:$("#password").val()}

后端是StaffName,你前端是tname
对象没发映射上,肯定没值额,你把前端的名称改成你staffInfo 实体对应的名称

#5


引用 3 楼 QWERT4745 的回复:
public String Login( @RequestBody staffInfo staffinfo

楼上说的也是问题,你的实体没写@RequestBody

#1


SSM登录账户密码用AJAX提交的数据一直是NULL,大神们帮忙看下哪里出错了 快来大神帮帮我啊   到底是哪里出问题了

#2


SSM登录账户密码用AJAX提交的数据一直是NULL,大神们帮忙看下哪里出错了

#3


public String Login( @RequestBody staffInfo staffinfo

#4


我看出一点问题,但不确定你的问题是不是这个问题影响的
你java接收一个对象staffInfo 
String tname=staffinfo.getStaffName();  
String tpwd=staffinfo.getStaffPassword();  

但是你前端传的对象跟你后端对象名称匹配不上
{tname:$("#tname").val(),tpwd:$("#password").val()}

后端是StaffName,你前端是tname
对象没发映射上,肯定没值额,你把前端的名称改成你staffInfo 实体对应的名称

#5


引用 3 楼 QWERT4745 的回复:
public String Login( @RequestBody staffInfo staffinfo

楼上说的也是问题,你的实体没写@RequestBody