移动公司收费项目的总结

移动公司开户和收费的项目总结:

  • 个人的总结,项目经验不多,坑定有错误和疏漏。

1.批量修改和批量删除的重点

  • 批量删除
1.在批量删除里面,难得是如何将被选中的多选框(checkbox)按钮的值一次性的都拿出来,并传到后台中去。
  -这里我们选择使用数组,后台的Controller层中,用一个String{] 或 Integer[] 等等数组来承载这些被选中的值
2.后台拿到这些值以后就好办了,直接在业务层(ServiceImpl)里面遍历,依次将数据库的这些值给删除了
  • 批量修改
1.批量修改就比批量删除来的有难度一些,因为是批量的修改,就不需要再从前台带值了,直接后台select * ,然后将这   个得到的对象集合放进Model 里。
2.有个地方不得不说的是我们的对象集合在后台中是集合,但是一旦传到前台的jsp页面中,就只能当做一个数组来处理     了,所有的获取值的方式按照数组的来就好了,不会出错的。

2. 界面空间的隐藏

1.这里的前台界面因为有超级管理员 和 普通的操作员 之分,所以要针对不同的权限用户显示不同的 可操作的内容。难道   写两个JSP 页面吗,那实在是太蠢了,我们的界面显示控件时有隐藏的属性的,我们完全可以先将属性设置为隐藏的,然   后  用个jQuery来判断,根据登录的用户的权限来开放不同的界面
2. 具体的属性是 <li id="item" style='display:none'></li> -----  > $("#item").show();就可以显示了

3.jQuery标签库导入时常出的毛病、

1.这个毛病就是:<script type="text/javascript" src="jQuery/jquery-1.8.3.min.js/> 
  这个乍一看好像没什么问题,可是运行的时候就是什么都不显示
2.只有改成这样才没有问题,我也不知道为什么,曾经一度困扰了我很久,我想应该是语法的问题吧
  <script type="text/javascript" src="jQuery/jquery-1.8.3.min.js"></script> 

4.SQL 语句经常犯的错

1.这写错应该只是我自己傻逼才会犯得。就是经常性的SQL语句的错误
 - update table() set(); 
 - insert into table values(xx=#{xx},yy=#{yy});// 你说傻不傻逼 正确的应该是 :values(#{xx},#{yy})

5.用过滤器解决了屡禁不止的乱码问题

1. 说道乱码,我本来还是很有心得的,因为曾经找了好几个小时的乱码原因,修修改改各种配置文件,但那都是之前写servlet时候的了,到了sprig MVC 乱码问题就比较麻烦了,以为jsp 页面有很多,不能每次都要设置编码和反编译把,那也太萨比了。
2.具体的方法挺简单的,springgmvc给我们内置了编码的过滤器,我们可以直接拿来用。
 - 在web.xml 里配置<filter>和<filter-mapping>,用到的class是 
 - <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

6.异步交互

1.异步交互-ajax、好用又便宜的好东西,具体的文档详细内容在jQuery里,可以很详细的看到里面有好几种用法,下面介   绍我觉着的最常见最实用的
2. $.ajax({
    type:"POST",
    url:"${PageContext.request.ContextPath}/xxx.action",
    data:"xx="+yy,    // 如果要传递多个值的话: data:{"xx":yy,"mm":nn}
    success:function(msg){
        ...
    }
});
3. 异步交互中,传进来集合,到jsp里就变成了数组,我们可以在这里面做节点的添加,这样就可以动态的根据数据库的记录来动态地显示数据。

7. 关于SQL查询中,如果没查询到值不返回null的问题 – 可以用 isEmpty() 方法 试试

1. 在真正的数据库操纵界面,例如 Navicat,就会发现如果没查到东西好像会显示一个空的记录,但是在mapper里面却什   么值也不返回,
2. 所以如果想用这本以为会返回的null来做if的判断就要小心了,会报错。可以在service层做处理,使其返回null。

8. jQuery中,从后台Controller层传过来的null,到了web层的 jsp 里面,会发生奇妙的变化,

null会被自动转换成0,做判断的时候要注意。

9. input 文本框 date 属性的写入 与回显的问题

1.我们现在做注册的时候经常避免不了会用到时间,时候 <input type="date" > 的很有用,但是他的 写入 和 回显 比   较麻烦
2.写入后台: 这里我们要配置 initBinder,利用 webDateBinder 来对时间进行封装,处理后才能在后台拿到这个date   的值,不然会报400 的错误,欺骗性路由啥的错误
3.数据回显: 简单点说就是给这个文本框赋值,让他显示出时间,一般的赋值可以直接用Date的时间就行了,不过要将其   格式转换成(yyyy-MM-dd),如果是将bean对象里的时间回显的话,就需要在 bean 的属性 或者 get方法  
  上加上一个注解 : @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")

10.文件上传

1.导入两个jar包,commons-io.jar 和 commons-fileupload.jar
2.上传文件的三个必要条件:
  - form 提交方式是post
  - 文本框type 必须是 file
  - form 有个属性 entrytype="multityPart/form-data"
3.在 application-mvc.xml 中要进行 文件上传的 配置 , CommonMultiPartResolver,可以设置他的最大文件上传大小和编码格式等等
4.记得要配置 虚拟的图片服务器 ,在配置Tomcat的界面," / + 项目名" 的那个地方 配置

5.后台接受文件是用的 MultipartFile xxfile,来接收的。
6.写入指定位置; xxfile.transferTo(file);   file 是 : File file = new File(path+新的文件名); 

11.spring 的异常解析器

  • 处理web项目运行时的异常处理问题,注意最好是在项目做完在弄这个,不然前面的错误信息会被自己写的覆盖,查错比较难受。
1.先在 pojo 层里,创建一个自定义的异常类,例如CustomerException(要继承Exception)
2.在web层,创一个 exception 的包,里面新建一个自定义的异常解析处理器,
  例如:CustomerHandlerExceptionResolver (要实现 HandlerExceptionResplver 接口)
  在这里面设置处理异常的模块。
3.在 application-mvc.xml 里面注册我们的异常解析器
  <bean class="cn.qphone.ssm.web.exception.CustomberHandlrExceptionResolver"/>

12. spring mvc的拦截器

  • 拦截器和过滤器相似,但是他只能拦截controller层的资源,比如能拦截xx.action等,但 jsp的东西拦截不了
1. 要现在application-mvc.xml 里 注册全局的拦截器  <mvc:interceptors>
2. 然后在配置拦截器要实现的接口(HandlerInterceptor)或者是继承的类(HandlerInterceptorAdaptor)(常用)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值