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框架的医疗后台管理系统 一个精简的医疗后台管理系统,前端采用Vuetify和Element组件库进行页面... UserController.java: 处理用户登录请求,根据用户职业类型调用相应的服务进行登录验证。 异常处理 UserN
MVC(Model-View-Controller)是...│ │ │ │ └── UserController.java │ │ │ ├── model/ │ │ │ │ └── User.java │ │ │ └── service/ │ │ │ └── UserService.java │ └── webapp/ │
- 控制器层:处理HTTP请求的Controller类,如UserController.java、BookController.java、OrderController.java - 配置文件:数据库连接配置、Spring和MyBatis的配置文件 开发者在编写过程中,应注意良好的编程习惯...
6. **Controller层**:如`ProductController.java`,`UserController.java`,接收前端请求,调用Service层方法,并返回响应结果。 7. **视图(View)**:JSP或Thymeleaf等模板文件,如`product_list.jsp`,`user_...
文件可能有`UserService.java`、`UserController.java`等。 2. **商品模块**:用于管理商品信息,包括添加、编辑、删除商品,以及商品分类、搜索等功能。相关的文件可能有`ProductService.java`、`CategoryService....
6. **视图层**:如果使用了MVC框架,如Spring MVC,会有控制器类(`UserController.java`)和视图模板文件(HTML、JSP等)。 7. **测试代码**:`Test`目录下的单元测试和集成测试,用于确保代码的正确性。 8. **文档...
- `controller`:控制层,如`UserController.java`,处理HTTP请求并调用服务层。 - `dao`:持久化接口,如`BaseUserTDao.java`,定义数据库操作;`mapper`子包包含对应的Mybatis映射文件,如`BaseUserTMapper.xml`...
本项目基于Spring+SpringMVC+...在项目源码\ssmHospital\src\main\java\com\yuanlrc\base\web\UserController.java 中修改头像存放位置 管理员账号:admin 管理员密码:123456 (忘记账号可以打开数据库表查看)
2. **Controllers**:包含处理HTTP请求的控制器类,如`UserController.java`、`QuestionController.java`,它们调用Service层的方法,并将结果转发到视图。 3. **Services**:服务层,实现业务逻辑,如`UserService...
2. `UserController.java`:处理用户登录、注册等请求的控制器。 3. `DoorAccessService.java`:门禁访问服务,负责处理门禁的开关操作和权限验证。 4. `UserRepository.java`:与用户数据存储交互的接口,可能基于...
2. **SpringMVC控制器**:处理前端请求,实现业务逻辑,如`UserController.java`,`CourseController.java`等。 3. **Service层**:实现业务逻辑,封装对DAO层的操作,如`UserService.java`,`CourseService.java`等...
主要包括以下目录结构: lua复制代码src/main/java/com/example/gymmanagement/|-- UserController.java|-- CourseController.java|-- AppointmentController.java|-- EquipmentController.java|-- ...其他控制器类|...
- **UserController.java**:这个前端控制器类使用@Controller注解,处理HTTP请求并负责页面跳转。 - **UserMapper.java**:持久层接口,定义了对数据库的操作。 - **User.java**:实体类,映射数据库中的user表...
4. **控制器(Controller)**:如`UserController.java`,`CourseController.java`,处理HTTP请求,实现业务逻辑。 5. **服务(Service)**:例如,`UserService.java`,`CourseService.java`,实现业务逻辑,与...
4. **控制器(Controller)**:处理用户请求,如`UserController.java`,在模型和视图之间协调数据流。 5. **数据库相关**:可能有数据库连接配置(`db.properties`)、SQL脚本(`create_tables.sql`)以及数据访问...
5. `Controller`:处理HTTP请求的控制器类,如`UserController.java`、`CarController.java`等。 6. `Service`:业务逻辑层,如`UserService.java`、`CarService.java`等。 7. `Mapper`:MyBatis的映射器接口,如`...
2. RestController类:例如UserController.java,处理用户相关的REST请求。 3. Service类:例如UserService.java,实现业务逻辑。 4. Repository类:例如UserRepository.java,与数据库交互。 5. 配置文件:...