I've a tables in database:
UserRoles (dictionary)
- Id
- Name (Admin, user...)
UsersLogins
- Id
- password
UserProfiles
- Id
- FirstName
- LastName
Users
- Id
- IdUserLogin (FK)
- IdUserRole (FK)
- IdUserProfile (FK)
How Can I insert values to above three tables?
I tried something like this:
Controller:
@Autowired
private UserProfilesService userProfilesService;
@Autowired
private D_UserRolesService d_UserRolesService;
@Autowired
private UserLoginsService loginsService;
@Autowired
private UsersService usersService;
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String getAddNewUserForm(Model model) {
UserProfiles userProfiles = new UserProfiles();
UserLogins userLogins = new UserLogins();
Users users = new Users();
model.addAttribute("userProfiles", userProfiles);
model.addAttribute("users", users);
model.addAttribute("userLogin", userLogins);
model.addAttribute("userRoless", d_UserRolesService.getAllRoles());
return "userNew";
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String processAddNewUserForm(@ModelAttribute("userProfiles") UserProfiles profileToBeAdded,
@ModelAttribute("userLogin") UserLogins loginToBeAdded, @ModelAttribute("users") Users userToBeAdded,
HttpServletRequest request) {
userProfilesService.addUser(profileToBeAdded);
loginsService.AddOrUpdateUser(loginToBeAdded);
usersService.AddOrUpdateUser(userToBeAdded);
return "redirect:/users";
}
JSP PAGE:
<form:form class="form-horizontal" >
<fieldset>
<legend>New user</legend>
<!-- Login -->
<form:form modelAttribute="userLogin">
<form:hidden path="idLogin"/>
<div class="form-group">
<label class="control-label col-lg-2" for="Email">E-mail</label>
<div class="col-lg-10">
<form:input id="Email" path="Email" type="text" class="form:input-large"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="Password">Password</label>
<div class="col-lg-10">
<form:password id="Password" path="Password" class="form:input-large"/>
</div>
</div>
</form:form>
<!-- Profile -->
<form:form modelAttribute="userProfiles">
<form:hidden path="id"/>
<div class="form-group">
<label class="control-label col-lg-2" for="FirstName">FirstName</label>
<div class="col-lg-10">
<form:input id="FirstName" path="FirstName" type="text" class="form:input-large"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="LastName">LastName</label>
<div class="col-lg-10">
<form:input id="LastName" path="LastName" type="text" class="form:input-large"/>
</div>
</div>
</form:form>
<!-- Users -->
<form:form modelAttribute="users">
<form:hidden path="idUser"/>
<div class="form-group">
<label class="control-label col-lg-2" for="idUserRole">Role</label>
<div class="col-lg-10">
<form:select path="userRole" items="${userRoless}"
itemValue="IdUserRole" itemLabel="name" multiple="false"
class="span12">
</form:select>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="IdLogin">Id</label>
<div class="col-lg-10">
<form:input id="userLogin" path="userLogin" type="text" class="form:input-large"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="IdLogin">Id</label>
<div class="col-lg-10">
<form:input id="userProfile" path="userProfile" type="text" class="form:input-large"/>
</div>
</div>
</div>
</form:form>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<input type="submit" id="btnAdd" class="btn btn-primary" value ="Add"/>
</div>
</div>
</fieldset>
</form:form>