package cn.controller;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import cn.common.Pages;
import cn.common.PathUtils;
import cn.entity.TDistrict;
import cn.entity.THouse;
import cn.entity.TPic;
import cn.entity.TStreet;
import cn.entity.TUser;
import cn.query.HouseQuery;
import cn.service.DistrictService;
import cn.service.HouseService;
import cn.service.PicService;
@Controller
@RequestMapping("/house")
public class HouseController {
@Resource()
@Qualifier("districtService") // @Resource() @Qualifier("")这两个注解相当于构造方法中把实例赋值给该属性
private DistrictService districtService;
@Resource
@Qualifier("houseService")
private HouseService houseService;
@Resource
@Qualifier("picService")
private PicService picService;
// 查询信息
@RequestMapping(value = "/list")
public String list(Model model, HouseQuery houseQuery, HttpServletRequest request) {
// 调用service方法查询集合
Pages<THouse> pages = houseService.getHousePages(houseQuery);
// 将查询结果存储到model
model.addAttribute("pages", pages);
// 查询区的集合
List<TDistrict> districts = districtService.queryAllDistrict();
// 将查询区的集合结果存储起来
request.getSession().setAttribute("districts", districts);
// 根据区ID查询街道集合
List<TStreet> streets = null;
if (null != houseQuery.getDistrictId()) {
streets = districtService.getStreetsByDistrictId(houseQuery.getDistrictId());
}
// 将街道存储
request.getSession().setAttribute("streets", streets);
// 存储查询条件进行回显
model.addAttribute("houseQuery", houseQuery);
// 页面跳转 - 返回逻辑视图名
return "houseList";
}
//跳转到add页面
@RequestMapping(value = "/add")
public String save(Model model) {
return "houseAdd";
}
// 保存
@RequestMapping(value = "/save")
public String save(@RequestParam MultipartFile img, Model model, THouse house, HttpServletRequest request)
throws IOException {
// 上传的图片
TPic pic = new TPic();
if (img.getSize() != 0) {
// // 获取图片上传的真实路径
// String realPath = request.getSession().getServletContext().getRealPath("src/main/webapp/resource/upload");
//
// String imgFileName = img.getOriginalFilename();
// String suffix = imgFileName.substring(imgFileName.indexOf("."));// 后缀名
// String noRepeatName = UUID.randomUUID().toString() + suffix;// 通过UUID加后缀名,组成不会重复的文件名
//
// // 根据保存的图片路径构造File文件对象
// String srcPath = realPath + "/" + noRepeatName;
// File file = new File(srcPath);
// // 保存到数据库时的路径
// String saveToDBpath = "/resource/upload" + "/" + noRepeatName;
// // 写入文件
// img.transferTo(file);
//start
String path = PathUtils.getPath(request, "upload", img.getOriginalFilename());
System.out.println(path);
img.transferTo(new File(path));
//end
// 图片描述信息
String imgDesc = request.getParameter("imgDesc");
if (null != imgDesc && !"".equals(imgDesc)) {
pic.setTitle(imgDesc);
}
// 图片保存的路径
pic.setUrl(PathUtils.datapath);
}
// 页面上传进来的对象house, 后台再添加一些属性
house.setAdddate(new Date());
TUser user = (TUser) request.getSession().getAttribute("user");
house.setUserid(user.getId());
String msg = "";
if (houseService.findHouse(house)) {
msg = "此房子已存在";
} else {
// 把 house 添加到数据库
int i = houseService.addHouse(house);
if(i > 0){
msg = "添加房子成功";
}else{
msg = "添加房子失败";
}
if (img.getSize() != 0) {
pic.setHouseid(house.getId());
// 把 pic 添加到数据库,pic依赖于house,pic对象有两个字段,一个是url,一个是 houseid
// houseid 是通过先把 house 加入到数据库后再获取到的
picService.addPic(pic);
}
}
model.addAttribute("msg", msg);
//request.getSession().setAttribute("msg", msg);
// 页面跳转 - 返回逻辑视图名
return "forward:/house/list";
}
@RequestMapping(value = "/delete/{id}") // REST 风格
public String delete(@PathVariable Long id,Model model,HttpServletRequest request) {
String msg = "";
int i = houseService.deleteHouse(id);
if(i > 0){
msg = "删除成功";
}else{
msg = "删除失败";
}
model.addAttribute("msg", msg);
//request.getSession().setAttribute("msg", msg);
return "forward:/house/list";
}
//修改页面
@RequestMapping(value = "/modify/{id}") // REST 风格
public String modify(@PathVariable Long id, Model model, HttpServletRequest request) {
THouse house = houseService.getHouseById(id);
// 查询区的集合
List<TDistrict> districts = districtService.queryAllDistrict();
// 将查询区的集合结果存储起来
request.getSession().setAttribute("districts", districts);
// 根据区ID查询街道集合
List<TStreet> streets = null;
if (null != house.getDistrict().getId()) {
streets = districtService.getStreetsByDistrictId(house.getDistrict().getId());
}
// 将街道存储
request.getSession().setAttribute("streets", streets);
model.addAttribute("house", house);
return "houseModify";
}
//修改页面,提交修改后的house
@RequestMapping(value = "/modify") // REST 风格
public String modify(Model model, THouse house, HttpServletRequest request) {
house.setPubdate(new Date());
int i = houseService.updateHouse(house);
String msg = "";
if(i > 0){
msg = "修改成功";
}else{
msg = "修改失败";
}
model.addAttribute("msg", msg);
//request.getSession().setAttribute("msg", msg);
return "forward:/house/list";
}
/*
* @responseBody 注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,
* 写入到response对象的body区,通常用来返回JSON数据或者是XML数据,
* 需要注意的呢,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中, 他的效果等同于通过response对象输出指定格式的数据。
*/
@ResponseBody
@RequestMapping(value = "/getStreetByAjax")
public List<TStreet> getStreetByAjax(Long districtId) {
List<TStreet> streets = districtService.getStreetsByDistrictId(districtId);
return streets;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
JavaEE 课程设计 SSM框架 房屋租赁系统 (224个子文件)
HouseController.class 7KB
HouseController.class 7KB
THouse.class 4KB
THouse.class 4KB
SelectCodeUtil.class 3KB
SelectCodeUtil.class 3KB
UserController.class 2KB
UserController.class 2KB
HouseServiceImpl.class 2KB
HouseServiceImpl.class 2KB
Pages.class 2KB
Pages.class 2KB
LoginController.class 2KB
LoginController.class 2KB
HouseQuery.class 2KB
HouseQuery.class 2KB
PathUtils.class 2KB
TUser.class 2KB
TUser.class 2KB
TStreet.class 1KB
TStreet.class 1KB
MyBatisUti.class 1KB
MyBatisUti.class 1KB
DistrictServiceImpl.class 1KB
DistrictServiceImpl.class 1KB
UserServiceImpl.class 1KB
UserServiceImpl.class 1KB
BaseQuery.class 1KB
BaseQuery.class 1KB
TPic.class 1KB
TPic.class 1KB
TDistrict.class 1KB
TDistrict.class 1KB
Parameter.class 816B
Parameter.class 816B
TType.class 731B
TType.class 731B
PicServiceImpl.class 686B
PicServiceImpl.class 686B
HouseDao.class 626B
HouseDao.class 626B
HouseService.class 578B
HouseService.class 578B
DistrictService.class 370B
DistrictService.class 370B
UserService.class 355B
UserService.class 355B
UserDao.class 344B
UserDao.class 344B
Constant.class 322B
Constant.class 322B
StreetDao.class 224B
StreetDao.class 224B
DistrictDao.class 220B
DistrictDao.class 220B
TypeDao.class 152B
TypeDao.class 152B
PicService.class 151B
PicService.class 151B
PicDao.class 139B
PicDao.class 139B
.classpath 1KB
org.eclipse.wst.common.component 772B
org.eclipse.wst.jsdt.ui.superType.container 49B
common.css 43B
common.css 43B
.DS_Store 8KB
.DS_Store 6KB
.DS_Store 6KB
aspectjweaver-1.7.4.jar 1.76MB
mysql-connector-java-5.1.35.jar 946KB
spring-core-3.2.16.RELEASE.jar 865KB
spring-context-3.2.16.RELEASE.jar 848KB
jackson-mapper-asl-1.9.11.jar 762KB
mybatis-3.2.2.jar 683KB
spring-webmvc-3.2.16.RELEASE.jar 627KB
spring-web-3.2.16.RELEASE.jar 617KB
spring-beans-3.2.16.RELEASE.jar 600KB
log4j-1.2.17.jar 478KB
spring-test-3.2.16.RELEASE.jar 448KB
jstl-1.2.jar 405KB
spring-jdbc-3.2.16.RELEASE.jar 397KB
standard-1.1.2.jar 384KB
spring-orm-3.2.16.RELEASE.jar 377KB
spring-aop-3.2.16.RELEASE.jar 331KB
dom4j-2.0.2.jar 305KB
cglib-3.1.jar 276KB
spring-tx-3.2.16.RELEASE.jar 237KB
jackson-core-asl-1.9.11.jar 227KB
jaxen-1.1.6.jar 226KB
spring-expression-3.2.16.RELEASE.jar 192KB
commons-io-2.4.jar 181KB
commons-dbcp-1.4.jar 157KB
spring-context-support-3.2.16.RELEASE.jar 126KB
commons-pool-1.5.4.jar 94KB
javax.servlet-api-3.1.0.jar 94KB
spring-oxm-3.2.16.RELEASE.jar 75KB
commons-logging-1.1.3.jar 61KB
commons-fileupload-1.2.2.jar 58KB
spring-aspects-3.2.16.RELEASE.jar 50KB
共 224 条
- 1
- 2
- 3
资源评论
- 才子022019-06-24不错,好用,不错的资源唐_方2019-06-25谢谢
- 无味韦唯2019-04-10博主sql文件导入不了MySQL,不知道什么原因呢,可以重新导出下么唐_方2019-06-25我也不知到 你在试试啦
唐_方
- 粉丝: 234
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- %E3%80%90%E6%95%B0%E7%94%B5%E3%80%91%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A874LS112%EF%BC%88%E6%88%9674L.html
- 基于three.js + canvas 实现的爱心代码+播放器效果
- 基于java实现的的数独小游戏(java)
- Echarts-售货机大数据分析平台
- 手扶电梯地铁电梯缺陷检测数据集VOC+YOLO格式67张2类别.7z
- 串口调试助手工具C#源码多区轮询
- 基于 C 实现的环形数组(环形数组的实现)
- 阿牛依日0.zip
- 交通灯.smart
- 行为预测算法:基于自动驾驶大模型的车辆轨迹预测系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功