ssm-学子商城-项目第五天
6.2 个人信息-修改
6.2.1 修改个人信息-持久层
6.2.2 修改个人信息-业务层
在IUserService定义方法
void updateUser(Integer id,String username,Integer gender,String phone,String email);
在UserService类中实现方法
public void updateUser(Integer id,String username,Integer gender,String phone,String email){1.User user = new User();2.判断username是否存在?User u1 = userMapper.selectByUsername(username);3.判断是否为null4.如果u1==nulluser.setUsername(username); 5.如果u1!=null6.判断用户名是否为登录的用户名User u2 = userMapper.selectById(id);7.如果u2!=nullif(u2.getUsername.equals(username){//不做操作 }else{//抛出异常}id,username???,phone,email,gender 8.userMapper.update(user);}
测试:
6.2.3 修改个人信息-控制器层
修改个人信息url
/user/updateUser.do
请求参数:session(id),4个
请求方式:GET
响应方式:ResponseBody
在UserController类中定义方法
@
@
public ResponseResult<Void> updateUser(HttpSession session,String username,String phone,String email,Integer gender){1.创建 ResponseResult<Void> rr;2.try{调用updateUser();封装状态码和响应信息(成功)}catch(Exception e){封装失败的状态码和响应信息}3.reurn rr;
}
6.2.4 修改个人信息-页面
页面的ajax
function btnUpdate(){
$.ajax({"url":"${pageContext.request.contextPath}/user/updateUser.do","data":$("#personInfo").serialize(),"type":"POST","dataType":"json","success":function(obj){alert(obj.state+","+obj.message);}
});
}
更新页面数据
1.在业务层定义方法getUserById
User getUserById(Integer id);public User getUserById(Integer id){return userMapper.selectById(id);
}
测试:
2.在控制器层调用方法,session保存修改后的信息
User user = userService.getUserById(this.getId(session));
session.setAttribute("user",user);
3.在页面的ajax的state==1,重新显示页面
if(obj.state==1){
location="...../user/showPersonInfo.do";
}
调整页面:左边栏
$(function(){
//所有的dd隐藏$("#leftsidebar_box dd").hide();
//让账号管理显示$("#leftsidebar_box .count_managment dd").show();
//所有的自定义列表的标题后边的图片 myOrder2.png
$("#leftsidebar_box dt img").attr("src","../images/myOrder/myOrder2.png");
//设置账号管理的图片和其他的三个不相同
$("#leftsidebar_box .count_managment").find('img').attr("src","../images/myOrder/myOrder1.png");});
登录拦截器
1.定义拦截器
public class LoginInterceptor implements
HandlerInterceptor{public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {//1.判断session user是否为nullHttpSession session = request.getSession();Object obj = session.getAttribute("user");if(obj==null){//2.如果null,重定向的登录页面String url = request.getContextPath()+"/user/showLogin.do";response.sendRedirect(url);return false;}else{//3.如果不为null,继续 执行contoller方法return true;}
}public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {// TODO Auto-generated method stub}public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {// TODO Auto-generated method stub}}
2.配置拦截器 在spring-mvc.xml文件中,配置拦截器
<!-- 配置拦截器 --><mvc:interceptors><mvc:interceptor><mvc:mapping path="/user/*"/><mvc:exclude-mapping path="/user/showRegister.do"/><mvc:exclude-mapping path="/user/register.do"/><mvc:exclude-mapping path="/user/checkUsername.do"/><mvc:exclude-mapping path="/user/checkEmail.do"/><mvc:exclude-mapping path="/user/checkPhone.do"/><mvc:exclude-mapping path="/user/showLogin.do"/><mvc:exclude-mapping path="/user/login.do"/><bean class="cn.tedu.store.interceptor.LoginInterceptor"/></mvc:interceptor></mvc:interceptors>
地址管理
创建表 t_address
create table t_address(id int auto_increment primary key,uid int not null,recv_name varchar(50) not null,recv_province varchar(6) not null,recv_city varchar(6) not null,recv_area varchar(6) not null,recv_distric varchar(100) not null,recv_address varchar(100) not null,recv_phone varchar(32) not null,recv_tel varchar(32),recv_zip varchar(6),recv_tag varchar(10),created_user varchar(50),created_time date,modified_user varchar(50),modified_time date
)default charset=utf8
1.添加地址
1.1添加地址-显示页面
定义控制器类
@RequestMapping("/address")
@Controller
public class AddressController extends BaseController{//显示addressAdmin.jsp页面@RequestMapping("/showAddress.do")public String showAddress(){return "addressAdmin";}
}
把addressAdmin.html改写为addressAdmin.jsp
调整页面
1.header.jsp
<!-- 页面顶部-->
<jsp:include page="header.jsp"></jsp:include>
2.left.jsp
<!-- 左边栏-->
<jsp:include page="left.jsp"></jsp:include>
在left.jsp的地址管理添加超级链接<a href="${pageContext.request.contextPath}/address/showAddress.do">地址管理</a>
调整拦截器
<mvc:mapping path="/user/*"/>
1.2 显示省市区三级联动菜单
在ftp服务器上下载省市区.zip
,解压到指定的路径。执行sql文件的格式: source e:/t_dict.sql
1.2.1显示省的菜单
1.显示省的菜单-持久层 创建Province实体类;
public class Province{private Integer id;private String provinceCode;private String provinceName;//....
}
创建DictMapper接口,定义方法selectProvince;
List<Province> selectProvince();
新建DictMapper.xml(复制,改名,内容删除)保留mapper
节点,namespace=".....DictMapper"需要修改;定义select节点,完成查询省的信息的功能
<select id="selectProvince" resultType="cn.tedu.store.bean.Province">select id,province_code as provinceCode,province_name as provinceNamefrom t_dict_provinces
</select>
测试:
2.显示省列表-业务层 创建接口IDictService,并定义方法
List<Province> getProvince();
创建接口的实现类:DictService,实现方法
@Resource
private DictMapper dictMapper;public List<Province> getProvince(){return dictMapper.selectProvince();
}
测试:
3.显示省列表-控制器层
/dict/showProvince.do
请求参数:无
请求方式:GET
响应方式:ResponseBody
创建控制器类:DictController
@RequestMapper("/dict")
@Controller
public class DictController{@Resourceprivate IDictService dictService;@RequestMapper("/showProvince.do")@ResponseBodypublic ResponseResult<List<Province>>showProvince(){1.创建rr对象2.调用业务层方法,返回集合3.把集合设置到rr对象中4.return rr;}
}
测试:
ssm-学子商城-项目第五天相关推荐
- 基于SSM的商城项目项目源码+实验报告
基于SSM的商城项目 本项目是今年暑假小学期时完成的,耗时四天时间,在小学期结束项目答辩时,在年级里斩获冠军,在此很感谢我的团队,正是我们各个环节的配合,最终才能够获得如此好的成绩. 目录 基于SSM ...
- 商城项目(五)整合Elasticsearch实现商品搜索
商城项目(五)整合Elasticsearch实现商品搜索 环境配置 Elasticsearch Elasticsearch 是一个分布式.可扩展.实时的搜索与数据分析引擎. 它能从项目一开始就赋予你的 ...
- ssm水果商城项目遇到的问题和解决
水果商城项目遇到的错误 https://www.bilibili.com/video/BV1EC4y1a7yH/?p=5 第一个问题 b站视频p5 控制台跳转jsp页面500错误 后面发现:是mave ...
- SSM购物商城项目开发
开发环境 : 当前用myeclipse (idea) jdk7 tomcat 8,.5 创建项目 new -- web project --- 记得把web.xml勾上 SSM框架整合配置 添加依赖 ...
- jsp+servlet学子商城项目--servlet、dao层的各项练习
Login的登录项目完成传值,select语句索引 UserDao.java /*** 根据用户名查询* @param name:表示用户名* @return如果用户名存在,封装成对象返回* 否则返回 ...
- SSM米米商城项目笔笔记五(商品信息多条件查询)
SSM米米商城项目笔笔记五(商品信息多条件查询) 1.当查询的条件没有数据时,点击查询会展示出所有的上商品信息 2.当输入商品的模糊信息时,就会展示带有模糊信息的数据 3.当选中商品类型的时候就根据类 ...
- SSM练手项目:米米商城
SSM练手项目:米米商城 第一章 登录功能的详细开发步骤 搭建ssm项目的步骤: 1>新建maven工程 2>修改目录,修改pom.xml文件 3>添加ssm项目框架的所有依赖 4& ...
- Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品排序,Thymeleaf快速入门,商品详情页的展示)
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品详情页的展示) 一.商品排序 1.完善页面信息 这是用来做排序的,默认按照综合排序 ...
- Java毕设项目-商城管理系统-基于J2EE/SSM化妆品商城系统的设计与实现
题目:商城管理系统-基于J2EE/SSM化妆品商城系统的设计与实现 重点作为毕设项目 1.开发环境 语言:Java Spring+Springmvc+Mybatis[简称SSM] 数据库: ...
- 分布式商城项目-后台开发-SSM工程整合网站模板
分布式商城项目-后台开发-SSM工程整合网站模板 我们在JavaWeb开发学习过程中,需要使用到前端的页面,可能很多时候,我们并不擅长于设计UI,比如html,jsp.但又希望自己做出来的程序能够好看 ...
最新文章
- 哪些人适合学web前端培训呢
- 根据值 加密后的值 算出key_Bugku:加密 rsa
- FPGA之道(26)VHDL初始化
- python语言入门自学-自学编程的6种方法,自学Python
- floodFill函数
- javascript this 关键字学习
- 非关系型数据库(非RDBMS)介绍
- .Net Core应用框架Util介绍(五)
- Android之数据转化崩溃问题
- leetcode 547. 省份数量(bfs)
- UVA 12563 Jin Ge Jin Qu hao
- python 浮点数精度丢失_浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源...
- Python练习-装饰器版-为什么我的用户总被锁定
- 华三路由器RIP协议详细配置
- Interactive Path Reasoning on Graph for Conversational Recommendation阅读笔记
- chrome插件之网页翻译插件
- 支持5G WIFI的串口服务器
- webpack打包生成的map文件_Webpack的devtool和source maps
- ZynqMP 调试 FSBL 代码
- 《剑指Offer》题解与笔记(Java实现)
热门文章
- 哪种存储器是非易失的_ROM是易失性存储器还是非易事性存储器?
- 微软运行库合集 |VC9、VC11、VC14、VC15库 32位 64位|v2019.3.2(3264位)最新版 phpstudy vc9-vc14运行库
- 固态硬盘在线测试软件,SSD检测工具(SSDlife Pro)
- mysql的r2dbc_使用R2DBC实现数据库的响应式访问
- lingo姜启源数学模型接力队选拔问题实现实例
- 地学计算方法/地统计学(第三章区域化变量理论)
- 雾霾的结构化责任主体
- 欧姆龙cp1h指令讲解_欧姆龙cp1h常用指令学习(八)字符串处理指令
- OPCUA-kepware读取工具安装及使用问题
- (附源码)spring boot网上购物平台 毕业设计 141422