1. 程式人生 > >@Controller,@RequestMapping,@RequestParam的使用方法

@Controller,@RequestMapping,@RequestParam的使用方法

@Controller
//@Controller表示該類的例項為控制器型別,不需要再繼承或者實現特定介面
@RequestMapping("/user")
//@RequestMapping用在類上面,表示所有的方法都將對映為類級別的的請求/user下面
public class UserController {
    private static List<User> userList;
    public UserController() {
        super();
        this.userList = new ArrayList<User>();
    }
    private static final Log logger = LogFactory.getLog(UserController.class);
    //register方法就被對映到如下路徑:
    //localhost:8080/projectName/user/register,這裡的/user對應的是類註解@RequestMapping("/user"),這裡的/register對應的是方法註解 @RequestMapping(value="/register",method=RequestMethod.GET)
    @RequestMapping(value="/register",method=RequestMethod.GET)
    public String register() {
        logger.info("register GET方法被呼叫...");
        return "registerForm";
    }
    @RequestMapping(value="/register",method=RequestMethod.POST)
    public String register(
    //@RequestParam("loginname")表示將請求中的loginname的值賦值給loginname變數(相當於String loginname = request.getParameter("loginname"))
            @RequestParam("loginname") String loginname,
            @RequestParam("password")String password,
            @RequestParam("username") String username) {
        logger.info("register POST方法被呼叫...");
        User user = new User(loginname, password, username);
        this.userList.add(user);
        return "loginForm";
    }
    @RequestMapping(value="/login")
    public String login(
            @RequestParam("loginname") String loginname,
            @RequestParam("password") String password,
            Model model) {
        logger.info("login方法被呼叫了...");
        logger.info("loginname:"+loginname+"password:"+password);
        for(User user : userList) {
            if(user.getLoginname().equals(loginname) && user.getPassword().equals(password)) {
                model.addAttribute("user", user);
                return "welcome";
            }
        }
        return "loginForm";
    }
}