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";
}
}
相关推荐
本项目基于Spring+SpringMVC+...在项目源码\ssmHospital\src\main\java\com\yuanlrc\base\web\UserController.java 中修改头像存放位置 管理员账号:admin 管理员密码:123456 (忘记账号可以打开数据库表查看)
主要包括以下目录结构: lua复制代码src/main/java/com/example/gymmanagement/|-- UserController.java|-- CourseController.java|-- AppointmentController.java|-- EquipmentController.java|-- ...其他控制器类|...
│ │ UserController.java │ │ │ ├─resources │ └─webapp │ │ add.jsp │ │ index.jsp │ │ login.jsp │ │ modify.jsp │ │ │ ├─assets │ │ └─bootstrap-3.3.7 │ │ ├─css ...
spring文件上传,文件上传 传统方式 借助第三方组件实现文件上传: UserController.java编写:
Spring Boot新零售系统叠放主文件结构... │ └── GlobalDefaultExceptionHandler.java │ │ └── BusinessException.java │ │ │ ├── controller │ │ └── UserController.java │ │ │ ├── dto │
smiling_eyes:档案结构spring-boot-jwt/ │ ├── src/main/java/ │ └── murraco │ ├── configuration │ │ └── SwaggerConfig.java │ │ │ ├── controller │ │ └── UserController.java │...
肯尼亚生计区数据收集工具 ... │ │ └── UserController.java │ │ │ ├── dto │ │ ├── UserDataDTO.java │ │ └── UserResponseDTO.java │ │ │ ├── exception │ │
JBPM4.4报销流程管理Demo(内附学习资料和sql文件),启动项目之前先运行UserController.java里面的面方法建立财务组,项目启动之后会自动建立18张表
UserController.java包含两个将在JWT墙后面固定的RESTful api端点 User.java代表我们服务的注册用户...已批准访问REST API的用户。 com.example.security软件包包含所有spring身份验证过滤器,以保护我们的系统 ...
Eiti解决方案普罗耶托Arquivos ├── docker-compose...br │ │ └── com │ │ └── befullstack │ │ └── eiticrud │ │ ├── controllers │ │ │ └── UserController.java │ │
介绍 使用保护应用程序部分的用户管理... AdminController.java和UserController.java控制器演示了如何为具有特定角色的用户保留对特定控制器的访问。 学分 该应用程序受到启发, 简化和重写,使其使用H2和百里香叶而
BigGunSpring boot 2 模板工程快速启动: HelloWordController.java数据库配置操作: UserController.java1. 通常手动在数据库创建表2. 字符集 选择 utf-8 mb43. UserEntitySpring 整合 Druid 完成 MySQL 数据访问,...
boot-jwt/ │ ├── src/main/java/ │ └── dembla.spring.security │ ├── configuration │ │ └── SwaggerConfig.java │ │ │ ├── controller │ │ └── UserController.java │ │ │ ├── ...
spring构架中的用户控制类的实现,@Controller,@RequestMapping,
defining beans [userController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.spring...
import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session....
SpringBoot集成swagger3(powernode CD2207) 零、前期准备 数据库ssm_power_edu.sql 0.1 pom.xml 0.2 application.yml 0.3 实体类 0.4 UserMapper接口 0.5 UserMapper.xml配置文件...2.10.1 UserController 添加的代码