package org.ksea.controller;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.io.FileUtils;
import org.ksea.dao.UserDao;
import org.ksea.exception.UserExcetion;
import org.ksea.model.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
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.multipart.MultipartFile;
@Controller
@RequestMapping({ "/user" })
public class UserController {
//查询用户列表信息
@RequestMapping(value={ "/users" },method=RequestMethod.GET)
public String queryUsers(Model model) {
UserDao userDao = new UserDao();
List<User> users = userDao.queryUserList();
model.addAttribute("users", users);
return "user/userlist";
}
//根据用户名查询用户
@RequestMapping(value={"/{username}/queryUser"},method=RequestMethod.GET)
public String queryUser(@PathVariable String username,Model model){
UserDao userDao= new UserDao();
User user= userDao.queryUserByUserName(username);
model.addAttribute("user", user);
return "user/detailUser";
}
//用该方法说明SpringMvC中返回json数据
@RequestMapping(value={"/{username}/queryUser1"},method=RequestMethod.GET,produces="application/json")
@ResponseBody
public User queryUser(@PathVariable String username){
UserDao userDao= new UserDao();
User user= userDao.queryUserByUserName(username);
return user;
}
//添加用户、跳转添加用户界面
@RequestMapping(value={"/add"},method=RequestMethod.GET)
public String add(Model model){
User user= new User();
model.addAttribute("user", user);
return "user/addUser";
}
/**
//执行添加用户操作Save
//单文件操作
@RequestMapping(value={"/add"},method=RequestMethod.POST)
//注明:此处上传MultipartFile attach通过传参获取文件,
//SpringMVC中form标签没有提供,只能通过input,其attach与input中name值必须一直
//controller配置文件还需配置CommonsMultipartResolver的bean
public String add(@Validated User user, BindingResult br,MultipartFile attach,HttpServletRequest request){
//注意在验证之后@Validated必须紧紧跟着BindingResult 他们两个中间不能有别的或者或编译不通过
if(br.hasErrors())
return "user/addUser";
//attach.getName()获取的值就是MultipartFile的属性也就是attach
//attach.getOriginalFilename()文件原始名称,也就是您上传文件的文件名
//attach.getContentType() 上传文件类型
//获取文件上传路径
String realPath=request.getSession().getServletContext().getRealPath("/resources/upload");
File file= new File(realPath+"/"+attach.getOriginalFilename());
try {
//上传文件
FileUtils.copyInputStreamToFile(attach.getInputStream(), file);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
UserDao userDao= new UserDao();
userDao.addUser(user);
return "redirect:/user/users";
}*/
//以上单文件上传仅供参考
//执行添加用户操作Save
//多文件同时上传
@RequestMapping(value={"/add"},method=RequestMethod.POST)
public String add( @Validated User user,
BindingResult br,
@RequestParam("attachs") MultipartFile[] attachs,
HttpServletRequest request){
if(br.hasErrors())
return "user/addUser";
String realPath=request.getSession().getServletContext().getRealPath("/resources/upload");
try {
//循环上传多个文件
for (int i = 0; i < attachs.length; i++) {
//如果上传的文件不存在,跳过不执行
if(attachs[i].isEmpty())
continue;
File file= new File(realPath+"/"+attachs[i].getOriginalFilename());
FileUtils.copyInputStreamToFile(attachs[i].getInputStream(), file);
//注意这里只处理了单个文件的保存,多文件保存,根据情况而定
user.setFilename(attachs[i].getOriginalFilename());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
UserDao userDao= new UserDao();
userDao.addUser(user);
return "redirect:/user/users";
}
//下载
@RequestMapping(value={"{filename}/downloadFile"},method=RequestMethod.GET)
public String downloadFile(@PathVariable String filename){
System.out.println(filename);
return "redirect:/user/users";
}
//更新用户信息、根据用户id查询之后、跳转到用户更新界面
@RequestMapping(value={"{uid}/updateUser"},method=RequestMethod.GET)
public String updateUser(@PathVariable String uid,Model model){
UserDao userDao= new UserDao();
User user=userDao.queryUserByUid(uid);
model.addAttribute("user", user);
return "user/updateUser";
}
//执行更新用户信息操作
@RequestMapping(value={"{uid}/updateUser"},method=RequestMethod.POST)
public String updateUser(@Validated User user,BindingResult br){
if(br.hasErrors())
return "user/updateUser";
UserDao userDao= new UserDao();
userDao.updateUser(user);
return "redirect:/user/users";
}
//根据用户ID执行删除操作
@RequestMapping(value={"{uid}/deleteUser"},method=RequestMethod.GET)
public String deleteUser(@PathVariable String uid){
UserDao userDao= new UserDao();
userDao.deleteUser(uid);
return "redirect:/user/users";
}
//执行跳转到登录界面
@RequestMapping(value={"/login"},method=RequestMethod.GET)
public String login(Model model){
model.addAttribute("user", new User());
return "user/login";
}
@RequestMapping(value={"/login"},method=RequestMethod.POST)
//保存sesion的值直接将session传递在参数中即可
public String login(User user,HttpSession session) throws UserExcetion{
User u=null;
UserDao userDao= new UserDao();
u= userDao.login(user);
if(null==u){
throw new UserExcetion("用户名与密码不匹配!");
}
//此处登录成功
session.setAttribute("user", u);
return "redirect:/user/users";
}
//局部异常处理、只能处理对应Controller中的异常,全局异常见SpringMVC中全局异常处理
/**
@ExceptionHandler(value={UserExcetion.class})
public String handlerException(UserExcetion userExcetion,HttpServletRequest request){
request.setAttribute("e", userExcetion);
return "user/error";
}*/
}
没有合适的资源?快使用搜索试试~ 我知道了~
SpringMVC架构入门
共68个文件
jar:31个
jsp:8个
class:7个
需积分: 10 50 下载量 18 浏览量
2015-12-07
15:00:34
上传
评论
收藏 11.36MB RAR 举报
温馨提示
讲述了整个SPpringMVC的简单配置,以及用与增,删,改,查,对json以及异常的处理
资源推荐
资源详情
资源评论
收起资源包目录
springmvc.rar (68个子文件)
springmvc
.project 2KB
.settings
.jsdtscope 500B
org.eclipse.wst.common.component 465B
org.eclipse.jdt.core.prefs 395B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.jsdt.ui.superType.name 6B
.mymetadata 300B
WebRoot
WEB-INF
springMVC-servlet.xml 2KB
web.xml 1KB
pages
user
login.jsp 1KB
addUser.jsp 2KB
error.jsp 932B
detailUser.jsp 1KB
updateUser.jsp 1KB
userlist.jsp 2KB
hello.jsp 840B
welcome.jsp 906B
lib
spring-context-4.2.2.RELEASE.jar 1.04MB
spring-aspects-4.2.2.RELEASE.jar 57KB
spring-messaging-4.2.2.RELEASE.jar 364KB
spring-aop-4.2.2.RELEASE.jar 358KB
spring-jdbc-4.2.2.RELEASE.jar 413KB
spring-core-4.2.2.RELEASE.jar 1.02MB
mysql-connector-java-5.1.37-bin.jar 963KB
bean-validator.jar 297KB
spring-instrument-tomcat-4.2.2.RELEASE.jar 10KB
jstl-1.2.jar 405KB
spring-instrument-4.2.2.RELEASE.jar 7KB
commons-fileupload-1.2.2.jar 58KB
spring-expression-4.2.2.RELEASE.jar 256KB
commons-io-2.1.jar 159KB
spring-websocket-4.2.2.RELEASE.jar 425KB
jackson-databind-2.5.4.jar 1.09MB
spring-oxm-4.2.2.RELEASE.jar 82KB
jackson-annotations-2.5.0.jar 39KB
spring-webmvc-portlet-4.2.2.RELEASE.jar 173KB
spring-context-support-4.2.2.RELEASE.jar 173KB
spring-tx-4.2.2.RELEASE.jar 259KB
jackson-core-2.5.0.jar 224KB
spring-beans-4.2.2.RELEASE.jar 713KB
spring-test-4.2.2.RELEASE.jar 549KB
jsf-api.jar 314KB
spring-web-4.2.2.RELEASE.jar 751KB
jsf-impl.jar 1.15MB
spring-webmvc-4.2.2.RELEASE.jar 852KB
spring-jms-4.2.2.RELEASE.jar 273KB
commons-logging-1.1.1.jar 59KB
spring-orm-4.2.2.RELEASE.jar 455KB
classes
org
ksea
dao
UserDao.class 4KB
db
DatabaseUtil.class 3KB
exception
UserExcetion.class 798B
model
User.class 2KB
controller
HelloController.class 966B
UserController.class 6KB
WelcomeContrlloer.class 1KB
db
user.sql 1KB
resources
css
main.css 37B
upload
META-INF
MANIFEST.MF 36B
.myeclipse
src
org
ksea
dao
UserDao.java 4KB
db
DatabaseUtil.java 3KB
exception
UserExcetion.java 588B
model
User.java 2KB
controller
WelcomeContrlloer.java 770B
HelloController.java 531B
UserController.java 7KB
db
user.sql 1KB
.classpath 529B
共 68 条
- 1
资源评论
mexican_jacky
- 粉丝: 24
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于c++的个人收支管理系统设计
- docker一键安装包
- Screenshot_20240430_144340_com.ss.android.ugc.live.jpg
- 回到山沟沟.mp3
- 基于matlab实现自适应波束形成RLS及LMS算法仿真源程序1.rar
- 基于matlab实现自己编写的基于卡尔曼滤波的利用加速度传感器的计步器,测试数据是传感器放在腰部和手臂 .rar
- 基于matlab实现阵列信号处理,波束形成.rar
- 111111111111111111
- 基于matlab实现计步器编程;对当前的计步器装置的数值算法模拟 .rar
- Mdb学习查看PW;access;mdb;pw;password;patch
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功