Java 来自前端的信息永远不会到达后端(jsp)
登录管理员页面后,我尝试使用saveOrUpdate或delete,但id未发送到后端。Delete和saveOrUpdate位于UserController中,LogIn位于logincontroller中,我认为这是会话的问题,但我在客户机服务器应用程序中非常擅长。我使用System.out.println来帮助我查看后端发生了什么,但是从一开始,当我期望id时,我接收到null。 我在另一个没有登录的项目中使用了这个jsp,它还可以Java 来自前端的信息永远不会到达后端(jsp),java,jsp,client-server,frontend,Java,Jsp,Client Server,Frontend,登录管理员页面后,我尝试使用saveOrUpdate或delete,但id未发送到后端。Delete和saveOrUpdate位于UserController中,LogIn位于logincontroller中,我认为这是会话的问题,但我在客户机服务器应用程序中非常擅长。我使用System.out.println来帮助我查看后端发生了什么,但是从一开始,当我期望id时,我接收到null。 我在另一个没有登录的项目中使用了这个jsp,它还可以 <%@ page language="java"
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">
</script>
</head>
<body onload="load();">
<% if (session.getAttribute("loggedInUserA").equals(1) ) { %>
<input type="hidden" id="userId">
Name: <input type="text" id="name" required="required" name="name"><br>
Password: <input type="text" id="password" required="required" name="password"><br>
Acces: <input type="text" id="acces" required="required" name="acces"><br>
<button onclick="submit();">Submit</button>
<table id="table" border=1>
<tr> <th> Name </th> <th> Password </th> <th> Acces </th> <th> Edit </th> <th> Delete </th> </tr>
</table>
<script type="text/javascript">
data = "";
submit = function(){
$.ajax({
url:'saveOrUpdate',
type:'POST',
data:{userId:$("#userId").val(),name:$('#name').val(),password:$('#password').val(),acces:$('#acces').val()},
success: function(response){
alert(response.message);
load();
}
});
}
delete_ = function(id){
console.log('id', id);
$.ajax({
url:'delete',
type:'POST',
data:{userId:id},
success: function(response){
alert(response.message);
load();
}
});
edit = function (index){
$("#userId").val(data[index].userId);
$("#name").val(data[index].name);
$("#password").val(data[index].password);
$("#acces").val(data[index].acces);
}
load = function(){
$.ajax({
url:'list',
type:'POST',
success: function(response){
data = response.data;
$('.tr').remove();
for(i=0; i<response.data.length; i++){
console.log(response.data[i].userId);
$("#table").append("<tr class='tr'> <td> "+response.data[i].name+" </td> <td> "+response.data[i].password+" </td> <td> "+response.data[i].acces+" </td> <td> <a href='#' onclick= edit("+i+");> Edit </a> </td> </td> <td> <a href='#' onclick='delete_("+response.data[i].userId+");'> Delete </a> </td> </tr>");
}
}
});
}
</script>
<h2>
<a href="/SpringMVC/">Back!!!</a>
</h2>
<% } else {
String redirectURL = "http://youtube.com";
response.sendRedirect(redirectURL); } %>
用户服务实现
@Service
public class UserServicesImpl implements UserServices {
@Autowired
UserDao userDao;
@Override
public List<User> list() {
// TODO Auto-generated method stub
return userDao.list();
}
@Override
public boolean delete(User user) {
// TODO Auto-generated method stub
System.out.println("UserServices "+user.getUserId()+" "+user.getName() +" "+user.getPassword() + " "+user.getAcces());
return userDao.delete(user);
}
@Override
public boolean saveOrUpdate(User user) {
// TODO Auto-generated method stub
System.out.println("UserServices "+user.getUserId()+" "+user.getName() +" "+user.getPassword() + " "+user.getAcces());
return userDao.saveOrUpdate(user);
}
public User loginUser(String name, String password) {
User user=userDao.findUser(name);
if (user != null && user.getPassword().equals(password)) {
System.out.println("User Login"+user.getUserId()+" "+user.getName());
return user;
}
return null;
}
}
@Repository
@Transactional
public class UserDaoImpl implements UserDao {
@Autowired
SessionFactory session;
@SuppressWarnings("unchecked")
@Override
public List<User> list() {
// TODO Auto-generated method stub
return session.getCurrentSession().createQuery("from User").list();
}
@Override
public boolean delete(User user) {
// TODO Auto-generated method stub
try {
System.out.println("UserDaoImpl"+user.getUserId());
session.getCurrentSession().delete(user);
}catch(Exception ex) {
return false;
}
return true;
}
@Override
public boolean saveOrUpdate(User user) {
// TODO Auto-generated method stub
session.getCurrentSession().saveOrUpdate(user);
return true;
}
@Override
public User findUser(String name) {
Criteria criteria = session.getCurrentSession().createCriteria(User.class);
User user=(User) criteria.add(Restrictions.eq("name", name)).uniqueResult();
return user;
}
}
@服务
公共类UserServicesImpl实现UserServices{
@自动连线
UserDao UserDao;
@凌驾
公开名单(){
//TODO自动生成的方法存根
返回userDao.list();
}
@凌驾
公共布尔删除(用户){
//TODO自动生成的方法存根
System.out.println(“UserServices”+user.getUserId()+“”+user.getName()+“”+user.getPassword()+“”+user.getAcces());
返回userDao.delete(用户);
}
@凌驾
公共布尔存储或更新(用户){
//TODO自动生成的方法存根
System.out.println(“UserServices”+user.getUserId()+“”+user.getName()+“”+user.getPassword()+“”+user.getAcces());
返回userDao.saveOrUpdate(用户);
}
公共用户登录用户(字符串名称、字符串密码){
User=userDao.findUser(名称);
if(user!=null&&user.getPassword().equals(password)){
System.out.println(“用户登录”+User.getUserId()+“”+User.getName());
返回用户;
}
返回null;
}
}
userdao实现
@Service
public class UserServicesImpl implements UserServices {
@Autowired
UserDao userDao;
@Override
public List<User> list() {
// TODO Auto-generated method stub
return userDao.list();
}
@Override
public boolean delete(User user) {
// TODO Auto-generated method stub
System.out.println("UserServices "+user.getUserId()+" "+user.getName() +" "+user.getPassword() + " "+user.getAcces());
return userDao.delete(user);
}
@Override
public boolean saveOrUpdate(User user) {
// TODO Auto-generated method stub
System.out.println("UserServices "+user.getUserId()+" "+user.getName() +" "+user.getPassword() + " "+user.getAcces());
return userDao.saveOrUpdate(user);
}
public User loginUser(String name, String password) {
User user=userDao.findUser(name);
if (user != null && user.getPassword().equals(password)) {
System.out.println("User Login"+user.getUserId()+" "+user.getName());
return user;
}
return null;
}
}
@Repository
@Transactional
public class UserDaoImpl implements UserDao {
@Autowired
SessionFactory session;
@SuppressWarnings("unchecked")
@Override
public List<User> list() {
// TODO Auto-generated method stub
return session.getCurrentSession().createQuery("from User").list();
}
@Override
public boolean delete(User user) {
// TODO Auto-generated method stub
try {
System.out.println("UserDaoImpl"+user.getUserId());
session.getCurrentSession().delete(user);
}catch(Exception ex) {
return false;
}
return true;
}
@Override
public boolean saveOrUpdate(User user) {
// TODO Auto-generated method stub
session.getCurrentSession().saveOrUpdate(user);
return true;
}
@Override
public User findUser(String name) {
Criteria criteria = session.getCurrentSession().createCriteria(User.class);
User user=(User) criteria.add(Restrictions.eq("name", name)).uniqueResult();
return user;
}
}
@存储库
@交易的
公共类UserDaoImpl实现UserDao{
@自动连线
会议工厂会议;
@抑制警告(“未选中”)
@凌驾
公开名单(){
//TODO自动生成的方法存根
return session.getCurrentSession().createQuery(“来自用户”).list();
}
@凌驾
公共布尔删除(用户){
//TODO自动生成的方法存根
试一试{
System.out.println(“UserDaoImpl”+user.getUserId());
session.getCurrentSession().delete(用户);
}捕获(例外情况除外){
返回false;
}
返回true;
}
@凌驾
公共布尔存储或更新(用户){
//TODO自动生成的方法存根
session.getCurrentSession().saveOrUpdate(用户);
返回true;
}
@凌驾
公共用户findUser(字符串名称){
条件=session.getCurrentSession().createCriteria(User.class);
User=(User)criteria.add(Restrictions.eq(“name”,name)).uniqueResult();
返回用户;
}
}
提交Ajax时,请检查id值是否符合预期:
submit = function(){
console.log($("#userId").val())
}
id值是我所期望的,您可以在浏览器的“网络”选项卡中查看请求的发送方式。如果参数存在,则表示它们没有正确映射到用户类。尝试用简单字段替换用户。