`

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";

}

 

}

 

分享到:
评论

相关推荐

    基于SSM框架的医疗后台管理系统.zip

    基于SSM框架的医疗后台管理系统 一个精简的医疗后台管理系统,前端采用Vuetify和Element组件库进行页面... UserController.java: 处理用户登录请求,根据用户职业类型调用相应的服务进行登录验证。 异常处理 UserN

    jsp+servlet+javaBean实现MVC-jspmvc

    MVC(Model-View-Controller)是...│ │ │ │ └── UserController.java │ │ │ ├── model/ │ │ │ │ └── User.java │ │ │ └── service/ │ │ │ └── UserService.java │ └── webapp/ │

    java课程设计源代码,书店管理系统

    - 控制器层:处理HTTP请求的Controller类,如UserController.java、BookController.java、OrderController.java - 配置文件:数据库连接配置、Spring和MyBatis的配置文件 开发者在编写过程中,应注意良好的编程习惯...

    基于Java 的SSM的B2C电商网站.zip

    6. **Controller层**:如`ProductController.java`,`UserController.java`,接收前端请求,调用Service层方法,并返回响应结果。 7. **视图(View)**:JSP或Thymeleaf等模板文件,如`product_list.jsp`,`user_...

    电商项目.zip

    文件可能有`UserService.java`、`UserController.java`等。 2. **商品模块**:用于管理商品信息,包括添加、编辑、删除商品,以及商品分类、搜索等功能。相关的文件可能有`ProductService.java`、`CategoryService....

    Java网盘项目.zip

    6. **视图层**:如果使用了MVC框架,如Spring MVC,会有控制器类(`UserController.java`)和视图模板文件(HTML、JSP等)。 7. **测试代码**:`Test`目录下的单元测试和集成测试,用于确保代码的正确性。 8. **文档...

    Springmybatis工程说明

    - `controller`:控制层,如`UserController.java`,处理HTTP请求并调用服务层。 - `dao`:持久化接口,如`BaseUserTDao.java`,定义数据库操作;`mapper`子包包含对应的Mybatis映射文件,如`BaseUserTMapper.xml`...

    基于SSM+MySQL的医院挂号管理系统

    本项目基于Spring+SpringMVC+...在项目源码\ssmHospital\src\main\java\com\yuanlrc\base\web\UserController.java 中修改头像存放位置 管理员账号:admin 管理员密码:123456 (忘记账号可以打开数据库表查看)

    毕设项目——Java题库管理系统.zip

    2. **Controllers**:包含处理HTTP请求的控制器类,如`UserController.java`、`QuestionController.java`,它们调用Service层的方法,并将结果转发到视图。 3. **Services**:服务层,实现业务逻辑,如`UserService...

    “智能门禁”项目 Server 端的 Java 源码。.zip

    2. `UserController.java`:处理用户登录、注册等请求的控制器。 3. `DoorAccessService.java`:门禁访问服务,负责处理门禁的开关操作和权限验证。 4. `UserRepository.java`:与用户数据存储交互的接口,可能基于...

    高校学习助手微信小程序ssm后端源码案例设计带文档说明.zip

    2. **SpringMVC控制器**:处理前端请求,实现业务逻辑,如`UserController.java`,`CourseController.java`等。 3. **Service层**:实现业务逻辑,封装对DAO层的操作,如`UserService.java`,`CourseService.java`等...

    基于SSM的健身房管理系统(源码+部署说明+演示视频+源码介绍).zip

    主要包括以下目录结构: lua复制代码src/main/java/com/example/gymmanagement/|-- UserController.java|-- CourseController.java|-- AppointmentController.java|-- EquipmentController.java|-- ...其他控制器类|...

    Springboot+MyBatis+mysql+jsp页面跳转详细示例.docx

    - **UserController.java**:这个前端控制器类使用@Controller注解,处理HTTP请求并负责页面跳转。 - **UserMapper.java**:持久层接口,定义了对数据库的操作。 - **User.java**:实体类,映射数据库中的user表...

    基于Springboot的在线学习系统.zip

    4. **控制器(Controller)**:如`UserController.java`,`CourseController.java`,处理HTTP请求,实现业务逻辑。 5. **服务(Service)**:例如,`UserService.java`,`CourseService.java`,实现业务逻辑,与...

    JAVA个人博客系统源码.rar

    4. **控制器(Controller)**:处理用户请求,如`UserController.java`,在模型和视图之间协调数据流。 5. **数据库相关**:可能有数据库连接配置(`db.properties`)、SQL脚本(`create_tables.sql`)以及数据访问...

    基于SpringBoot + MyBaties的58二手车山寨版.zip

    5. `Controller`:处理HTTP请求的控制器类,如`UserController.java`、`CarController.java`等。 6. `Service`:业务逻辑层,如`UserService.java`、`CarService.java`等。 7. `Mapper`:MyBatis的映射器接口,如`...

    基于SpringBoot的rest web基础脚手架,实现java工程快速开发.zip

    2. RestController类:例如UserController.java,处理用户相关的REST请求。 3. Service类:例如UserService.java,实现业务逻辑。 4. Repository类:例如UserRepository.java,与数据库交互。 5. 配置文件:...

Global site tag (gtag.js) - Google Analytics