UserController.java

package org.travelzen.hotel.user.controller;

 

import java.io.File;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;

 

import javax.servlet.http.HttpServletRequest;

import javax.validation.Valid;

 

import org.apache.commons.io.FileUtils;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.validation.BindingResult;

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

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.ResponseBody;

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

import org.springframework.web.multipart.MultipartFile;

import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import org.springframework.web.servlet.view.InternalResourceViewResolver;

import org.travelzen.hotel.user.exception.UserException;

import org.travelzen.hotel.user.vo.User;

 

@Controller

@RequestMapping("/travelzen/hotel")

@SessionAttributes("loginUser")

public class UserController {

 

private final static Map<String, User> users = new HashMap<String ,User>();

//private final static List<User> users = new ArrayList<User>();

 

public UserController() {

 users.put("ldh", new User("ldh", "123", "刘德华", "ldh@travelzen.com"));

users.put("zxy", new User("zxy", "123", "张学友", "zxy@travelzen.com"));

users.put("lm", new User("lm", "123", "黎明", "lm@travelzen.com"));

users.put("gfc", new User("gfc", "123", "郭富城", "gfc@travelzen.com"));

users.put("zjl", new User("zjl", "123", "周杰伦", "zjl@travelzen.com"));

}

 

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

public String list(Model model) {

if( ! model.containsAttribute("loginUser")) {

return "redirect:/travelzen/hotel/login";

}

model.addAttribute("users", users);//key为map

return "travelzen/hotel/user/list";

}

 

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

public String add(Model model) {

model.addAttribute(new User());//User-user

return "travelzen/hotel/user/add";

}

 

@RequestMapping(value="/user/add", method=RequestMethod.POST)

public String add(@Valid User user, BindingResult binding, @RequestParam(required=false) MultipartFile[] photos, HttpServletRequest req, Model model) throws IOException {

if(binding.hasErrors()) {

//接受错误信息

//return "redirect:/travel/hotel/user/add";

return "travelzen/hotel/user/add";

}

for(MultipartFile photo : photos) {

if(photo.isEmpty()) continue;

System.out.println(photo.getContentType() + ", " + photo.getName() + ", " + photo.getOriginalFilename());

String realPath = req.getSession().getServletContext().getRealPath("/resources/upload/");

FileUtils.copyInputStreamToFile(photo.getInputStream(), new File(realPath + "/" + photo.getOriginalFilename()));

}

users.put(user.getUserName(), user);

model.addAttribute("loginUser", user);

return InternalResourceViewResolver.REDIRECT_URL_PREFIX + "/travelzen/hotel/users";

}

 

//显示用户

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

public String show(@PathVariable String userName, Model model) {

model.addAttribute(users.get(userName));

return "travelzen/hotel/user/show";

}

 

@ResponseBody

@RequestMapping(value="/user/{userName}", params="json", method=RequestMethod.GET)

//public User showJson(@PathVariable String userName, @RequestParam String json, Model model) {

public User showJson(@PathVariable String userName) {

return users.get(userName);

}

 

@RequestMapping(value="/user/{userName}/update", method=RequestMethod.GET)

public String update(@PathVariable String userName, Model model) {

model.addAttribute(users.get(userName));

return "travelzen/hotel/user/update";

}

 

@RequestMapping(value="/user/{userName}/update", method=RequestMethod.POST)

public String update(@PathVariable String userName, @Valid User user, BindingResult binding, Model model) {

if(binding.hasErrors()) {

//return "travelzen/hotel/user/user/update";

}

users.put(user.getUserName(), user);

return InternalResourceViewResolver.REDIRECT_URL_PREFIX + "/travelzen/hotel/users";

}

 

@RequestMapping(value="/user/{userName}/delete", method=RequestMethod.GET)

public String delete(@PathVariable String userName) {

users.remove(userName);

return "redirect:/travelzen/hotel/users";

}

 

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

public String login() {

return "travelzen/hotel/user/login";

}

 

@RequestMapping(value="/login", method=RequestMethod.POST)

public String login(String userName, String password, Model model) {

if( ! users.containsKey(userName)) {

throw new UserException("用户名不存在");

}

if( ! password.equals(users.get(userName).getPassword())) {

throw new UserException("用户密码不正确");

}

model.addAttribute("loginUser", users.get(userName));

return InternalResourceViewResolver.REDIRECT_URL_PREFIX + "/travelzen/hotel/users";

}

 

@ExceptionHandler(value={UserException.class})

public String handlerException(Exception e, HttpServletRequest req) {

req.setAttribute("e", e);

return "travelzen/hotel/error";

}

 

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

public String logout() {

return "travelzen/hotel/user/logout";

}

 

@RequestMapping("/redir")

public String redir(Model model, RedirectAttributes ra) {

ra.addFlashAttribute("tttt", "吞吞吐吐");

//model.addAttribute("tttt", "吞吞吐吐");

return "redirect:/travelzen/hotel/users";

}

 

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值