我现在正在对eclipse java-ee进行编码,在curd mvc程序中,我已经生成了四种方法,除了更新方法之外,编译时我可以读取数据,但是当我更新时,我得到了错误400,我给出了我的控制器和道类。
我的控制器
----------
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.``ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
import dao.UserDaoImpl;
import model.User;
@Controller
public class Firstcontroller {
@Autowired
UserDaoImpl userDao;
@RequestMapping(value="/add")
public ModelAndView redirectUser()
{
ModelAndView m=new ModelAndView("add");
return m;
}
@RequestMapping(value="/table")
public ModelAndView viewUser()
{
List<User> list=userDao.viewUsers();
return new ModelAndView("All_User","list",list);
}
@RequestMapping(value="/register",method=RequestMethod.POST)
public ModelAndView processSaveUser(@ModelAttribute User user)
{
if(userDao.saveUser(user))
{
ModelAndView m=new ModelAndView("login","response","Successfully Registered");
return m;
}
ModelAndView m1=new ModelAndView("signup","response","Failed Registeration");
return m1;
}
@RequestMapping(value="deleteuser/{id}" ,method = RequestMethod.GET)
public ModelAndView deleteuser(@PathVariable int id)
{
userDao.delete(id);
return new ModelAndView("redirect:/table");
}
@RequestMapping(value="/edituser/{id}")
public ModelAndView edit(@PathVariable int id){
User user=userDao.getUserById(id);
return new ModelAndView("edituser","command",user);
}
@RequestMapping(value="/save",method = RequestMethod.POST)
public ModelAndView edituser(@PathVariable String id){
System.out.println("Got In");
//userDao.update(user);
return new ModelAndView("redirect:/table");
}
}我的刀是
package dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import handler.UserRowMapper;
import model.User;
public class UserDaoImpl implements UserDao {
private JdbcTemplate jdbcTemp;
public void setJdbcTemp(JdbcTemplate jdbcTemp) {
this.jdbcTemp = jdbcTemp;
}
public boolean saveUser(User user) {
String sql_query="INSERT INTO userdata (username,password) VALUES (?,?)";
int x=jdbcTemp.update(sql_query,user.getLunm(),user.getLpwd());
if(x>0)
{
return true;
}
return false;
}
public List<User>viewUsers()
{
return jdbcTemp.query("select * from userdata",new RowMapper<User>()
{
public User mapRow(ResultSet rs,int row)throws SQLException
{
User u=new User();
u.setId(rs.getInt(1));
u.setLunm(rs.getString(2));
u.setLpwd(rs.getString(3));
return u;
}
}
);
}
public User getUserById(int id)
{
String sql="select * from userdata where id=?";
return (User)jdbcTemp.queryForObject(sql,new Object[]{id},new UserRowMapper());
}
public int delete(int id)
{
String sql="delete from userdata where id=?";
int x=jdbcTemp.update(sql,id);
if(x>0)
{
return(x);
}
return (0);
}
public int update(User user)
{
String sql="update userdetails set username=? and password=? where id=?";
return jdbcTemp.update(sql,user.getLunm(),user.getLpwd(),user.getId());
}
}EditUser.jsp
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page isELIgnored="false" %>
<h1>Edit User</h1>
<h1>${command.id }</h1>
<form:form method="POST" action="save?id=${command.id }">
<table >
<tr>
<td></td>
<td><form:hidden path="id" /></td>
</tr>
<tr>
<td>Username : </td>
<td><form:input path="lunm" /></td>
</tr>
<tr>
<td>password :</td>
<td><form:input path="lpwd" /></td>
<tr>
<td> </td>
<td><input type="submit" value="Edit" /></td>
</tr>
</table>
</form:form> [ this is my error msg][1]发布于 2017-05-29 07:33:24
@RequestMapping(value="/save",method = RequestMethod.POST)
public ModelAndView edituser(@PathVariable String id){
System.out.println("Got In");
//userDao.update(user);
return new ModelAndView("redirect:/table");
}如果上面的代码用于商店,更新后的用户名和密码意味着将@PathVariable更改为@ModelAttribute用户,例如:
@RequestMapping(value="edituser/save",method = RequestMethod.POST)
//@RequestMapping(value="/save",method=RequestMethod.PUT)
public ModelAndView edituser(@ModelAttribute User user){
System.out.println("Got In");
userDao.update(user);
return new ModelAndView("redirect:/table");
}有不同的表名
public int delete(int id)
{
String sql="delete from userdata where id=?";
int x=jdbcTemp.update(sql,id);
if(x>0)
{
return(x);
}
return (0);
}
public int update(User user)
{
String sql="update userdata set username=?,password=? where id=?";
return jdbcTemp.update(sql,user.getLunm(),user.getLpwd(),user.getId());
}https://stackoverflow.com/questions/44236743
复制相似问题