UserCtl.java

package in.co.sunrays.ctl;

import java.util.ArrayList;

import java.util.List;

import in.co.sunrays.dto.RoleDTO;

import in.co.sunrays.dto.UserDTO;

import org.springframework.beans.factory.annotation.Required;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

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.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.SessionAttributes;

@Controller

@RequestMapping(value = "/User")

@SessionAttributes("userContext")

public class UserCtl {

/**

* Preloaded data

*

* @param number

* @param model

*/

@ModelAttribute

public void prepare(@RequestParam(required = false) String operation,

Model model) {

System.out.println("Loding preloaded data Role List");

List<RoleDTO> l = new ArrayList<RoleDTO>();

RoleDTO admin = new RoleDTO();

admin.setId(1);

admin.setName("Admin");

l.add(admin);

RoleDTO member = new RoleDTO();

admin.setId(2);

admin.setName("Member");

l.add(member);

RoleDTO guest = new RoleDTO();

admin.setId(3);

admin.setName("Guest");

l.add(guest);

System.out.println("Size or Role List " + l.size());

model.addAttribute("roleList", l);

}

/**

* View User Information

*

* @param id

* @param operation

* @param model

* @return

*/

@RequestMapping(value = "/{id}", method = RequestMethod.GET)

public String viewUser(@PathVariable("id") long id,

@RequestParam(required = false) String operation, Model model) {

System.out.println("I am in User View");

System.out.println("User ID " + id);

UserDTO dto = new UserDTO();

dto.setId(id);

dto.setFirstName("Vijay");

dto.setLastName("Chohan");

dto.setLogin("vijay.chohan");

model.addAttribute("user", dto);

return "UserView";

}

/**

* Display User List

*

* @return

*/

@RequestMapping(value = "/search", method = RequestMethod.GET)

public String search(@RequestParam(required = false) String operation,

@ModelAttribute("user") UserDTO user, Model model) {

System.out.println("I am in search");

return "UserList";

}

/**

* Add User by Admin

*

* @param operation

* @param user

* @param model

* @return

*/

@RequestMapping(value = { "/add/{id}", "/edit/{id}" }, method = RequestMethod.GET)

public String editUser(@PathVariable("id") long id,

@RequestParam(required = false) String operation,

@ModelAttribute("user") UserDTO user, Model model) {

System.out.println("I am in edit user ");

if (id > 0) {

user.setId(id);

user.setFirstName("Vijay");

user.setLastName("Chohan");

user.setLogin("vijay.chohan");

}

return "User";

}

/**

* Submit User registration page

*

* @param operation

* @param user

* @param model

* @return

*/

@RequestMapping(value = "/edit/{id}", method = RequestMethod.POST)

public String editUserSubmit(

@RequestParam(required = true) String operation,

@ModelAttribute("user") UserDTO user, Model model) {

System.out.println("I am in user registration");

System.out.println("Operation : " + operation);

System.out.println("First Name : " + user.getFirstName());

System.out.println("Last Name : " + user.getLastName());

System.out.println("Login : " + user.getLogin());

System.out.println("Password : " + user.getPassword());

model.addAttribute("message","Congratulations! User is successfully added.");

return "User";

}

}