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-学子商城-项目第五天相关推荐

  1. 基于SSM的商城项目项目源码+实验报告

    基于SSM的商城项目 本项目是今年暑假小学期时完成的,耗时四天时间,在小学期结束项目答辩时,在年级里斩获冠军,在此很感谢我的团队,正是我们各个环节的配合,最终才能够获得如此好的成绩. 目录 基于SSM ...

  2. 商城项目(五)整合Elasticsearch实现商品搜索

    商城项目(五)整合Elasticsearch实现商品搜索 环境配置 Elasticsearch Elasticsearch 是一个分布式.可扩展.实时的搜索与数据分析引擎. 它能从项目一开始就赋予你的 ...

  3. ssm水果商城项目遇到的问题和解决

    水果商城项目遇到的错误 https://www.bilibili.com/video/BV1EC4y1a7yH/?p=5 第一个问题 b站视频p5 控制台跳转jsp页面500错误 后面发现:是mave ...

  4. SSM购物商城项目开发

    开发环境 : 当前用myeclipse (idea) jdk7 tomcat 8,.5 创建项目 new -- web project --- 记得把web.xml勾上 SSM框架整合配置 添加依赖 ...

  5. jsp+servlet学子商城项目--servlet、dao层的各项练习

    Login的登录项目完成传值,select语句索引 UserDao.java /*** 根据用户名查询* @param name:表示用户名* @return如果用户名存在,封装成对象返回* 否则返回 ...

  6. SSM米米商城项目笔笔记五(商品信息多条件查询)

    SSM米米商城项目笔笔记五(商品信息多条件查询) 1.当查询的条件没有数据时,点击查询会展示出所有的上商品信息 2.当输入商品的模糊信息时,就会展示带有模糊信息的数据 3.当选中商品类型的时候就根据类 ...

  7. SSM练手项目:米米商城

    SSM练手项目:米米商城 第一章 登录功能的详细开发步骤 搭建ssm项目的步骤: 1>新建maven工程 2>修改目录,修改pom.xml文件 3>添加ssm项目框架的所有依赖 4& ...

  8. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品排序,Thymeleaf快速入门,商品详情页的展示)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品详情页的展示) 一.商品排序 1.完善页面信息 这是用来做排序的,默认按照综合排序 ...

  9. Java毕设项目-商城管理系统-基于J2EE/SSM化妆品商城系统的设计与实现

    题目:商城管理系统-基于J2EE/SSM化妆品商城系统的设计与实现 重点作为毕设项目 1.开发环境 语言:Java       Spring+Springmvc+Mybatis[简称SSM] 数据库: ...

  10. 分布式商城项目-后台开发-SSM工程整合网站模板

    分布式商城项目-后台开发-SSM工程整合网站模板 我们在JavaWeb开发学习过程中,需要使用到前端的页面,可能很多时候,我们并不擅长于设计UI,比如html,jsp.但又希望自己做出来的程序能够好看 ...

最新文章

  1. 哪些人适合学web前端培训呢
  2. 根据值 加密后的值 算出key_Bugku:加密 rsa
  3. FPGA之道(26)VHDL初始化
  4. python语言入门自学-自学编程的6种方法,自学Python
  5. floodFill函数
  6. javascript this 关键字学习
  7. 非关系型数据库(非RDBMS)介绍
  8. .Net Core应用框架Util介绍(五)
  9. Android之数据转化崩溃问题
  10. leetcode 547. 省份数量(bfs)
  11. UVA 12563 Jin Ge Jin Qu hao
  12. python 浮点数精度丢失_浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源...
  13. Python练习-装饰器版-为什么我的用户总被锁定
  14. 华三路由器RIP协议详细配置
  15. Interactive Path Reasoning on Graph for Conversational Recommendation阅读笔记
  16. chrome插件之网页翻译插件
  17. 支持5G WIFI的串口服务器
  18. webpack打包生成的map文件_Webpack的devtool和source maps
  19. ZynqMP 调试 FSBL 代码
  20. 《剑指Offer》题解与笔记(Java实现)

热门文章

  1. 哪种存储器是非易失的_ROM是易失性存储器还是非易事性存储器?
  2. 微软运行库合集 |VC9、VC11、VC14、VC15库 32位 64位|v2019.3.2(3264位)最新版 phpstudy vc9-vc14运行库
  3. 固态硬盘在线测试软件,SSD检测工具(SSDlife Pro)
  4. mysql的r2dbc_使用R2DBC实现数据库的响应式访问
  5. lingo姜启源数学模型接力队选拔问题实现实例
  6. 地学计算方法/地统计学(第三章区域化变量理论)
  7. 雾霾的结构化责任主体
  8. 欧姆龙cp1h指令讲解_欧姆龙cp1h常用指令学习(八)字符串处理指令
  9. OPCUA-kepware读取工具安装及使用问题
  10. (附源码)spring boot网上购物平台 毕业设计 141422