Я новичок в весне с hibernate. После того, как пользователь вошел в систему, у меня есть требование обновить имя пользователя, пароль, emailId, когда пользователь захочет изменить эти поля. Но здесь пользователь может изменить любое поле, например, он может изменить emailIdи он оставил пароль и имя пользователя пустыми строками ... но в сервисе я хочу обновить только те поля, которые он дает значения в базе данных, если он оставляет пустое поле любого поля, я хочу избежать этого поля (но это обновление пустой строки вбаза данных). Я не уверен все время, какое поле он хочет изменить, т.е. все поля или любое из них. Любой может подсказать мне, как выполнить это требование.заранее спасибо.
Вот файл jsp:
<%
String path=request.getContextPath();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">`enter code here`
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link href="<%=path %>/css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form action="modifyUser.htm" method="get">
<table width="100%" border="0" align="left" cellpadding="0" cellspacing="0"
class="fields">
`enter code here`<tr>
<td width="33%">User Name <span class="star"></span></td>
<td width="67%"><input name="userName" type="text" /></td>
</tr>
<tr>
<td>Password</td>
<td><input name="password" type="password" /></td>
</tr>
<tr>
<td height="35">Email ID </td>
<td><input name="emailId" type="text" /></td>
</tr>
<tr>
<td> </td>
<td align="left"><input type="image" src="<%=path %>/images/update.png" height="2 5"
`width="65" /></td>
</tr>
</table>
</form>
</body>
</html>
здесь основной контроллер:
public class MainController {
@RequestMapping("/modifyUser.htm")
public ModelAndView updateUser(@RequestParam String userName,@RequestParam String password,@RequestParam String emailId,HttpSession session)throws Exception{
User user=null;
try{
user=(User)session.getAttribute("userSession");
if(userName.equalsIgnoreCase(currentUserName)){
System.out.println("i'm in same username case");
user.setUserPassword(password);
user.setUserEmailId(emailId);
userService.updateUser(user);
return new ModelAndView("user_management","message","user_modified");
}else if(userService.isUserNameValid(userName)){
System.out.println("here username also changing 2nd case");
user.setUserName(userName);
user.setUserPassword(password);
user.setUserEmailId(emailId);
userService.updateUser(user);
return new ModelAndView("user_management","message","user_modified");
}else {
System.out.println("case failed to update user");
return new ModelAndView("external2","message","invalid_username");
}
}catch (Exception e) {
System.out.println(e);
e.printStackTrace();
logger.error("in updating a user with username:"+userName+" ",e);
return new ModelAndView("error","message",e);
// TODO: handle exception
}
}
}