JSP+jQuery踩坑错误锦集

最近完成的项目是传统的MVC项目,前端页面主要采用JSP+jQuery完成,而且没有开发环境,踩坑颇为多,且调试麻烦。本着让以后能更高效(bu na me ku bi)的完成工作,来总结一下自己的踩坑锦集,希望对仍然采用该项目结构的小伙伴有所帮助,后续如果继续写jsp,会一直补充。

好了,不废话,先说说上手体验,毕竟之前一直都是前后端分离,虽然我前后端都写。从springBoot+SpringCloud+react编程,变为SpringMVC+JSP+jQuery,首先是懵逼的,调试效率都变低了,前后端分离的话,写后端会有swagger加持,测试方便的不要不要的,写前端react,也会自己mock数据,bug率一直很低,回到前一代技术,居然云云不知所措,下面来看具体:

1.  工具坑,由于IDEA没有专门配置jsp环境,导致项目打开全都是报错,写码完成后,都不知编译对错,直接提交服务器,看运行结果调试,效率极为地下,因此建议,如果长时间维护该项目,一定要想好本地开发调试方案。当然最后不能一直这样发布去调试,索性直接在服务器上修改代码看结果,并且将修改的代码同步copy到本地,也算是个难过的解决方案吧。

2.  jQuery之殇,好久没有用过了,在用jQuery根据id取页面元素一直取不到,经过检查,缺少‘#’号,如下:

// 错误代码
var name = $("name").val();

// 记得带上#号
var name = $("#name").val();
if(name){
    // 因为上面取错,导致我无法赋值成功
    obj.name = name;
}

3. 使用ajax后端没有按照相应格式返回,导致即使请求成功,也会进入error,该问题由于没有打印日志,所以排查了好长时间,最后想起来之前遇到过,怕不是进入到error里了,结果调试结果,还真是!由此可鉴,日志,以及错误处理不能少,不能偷懒。

function opIndividualWelfare() {
	  var uid = $("#userId").val();
	  var userName = $("#realName").val();
      $.ajax({
          type : "post",//请求形式
          url : "${ctx}/memberInfoManage/memberInfo/openingIndividualWelfare",//冻结金额    处理文件路径
          data : {
              userId : uid,
              userName : userName
          },
          cache : false,
          async : false,//是否异步
          dataType : "json",//返回的数据类型
          success : function(data) {
              data = data.data
              if ("0000" == data.respCode) { //有数据
                  $('#error').css('display', 'none');
                  window.location.reload();
              } else { //无此数据
                  $('#error').css('display', 'block');
                  window.location.reload();
              }
          },
          error : function(e) {
            // 这里异常一定要打印或者处理,不然出现意外难以排查
              console.error(e);
          }
      });
  }

4. 细节问题,打印日志的时候formate写错了,都是细节!!!看下面代码,不细看,是不是看不出来0.0

// 错误代码
logger.info(String.format("调整计算完毕后的发送金额为:%s"),amountStr);

// 正确代码
logger.info(String.format("调整计算完毕后的发送金额为:%s",amountStr));

5. JSP标签使用错误:由于在js代码中,需要用到某个JSP表达式,结果我在页面搜索完毕后直接拿走用了,没有看到我拿到的是一个集合对象,直接用来判断不等于空字符串,结果直接报格式转换错误,莫名其妙,排查后发现是个集合。

6. JSP页面上没有进行格式化处理,修改后代码如下,保留两位小数:

<fmt:formatNumber type="number" value="${integralBalance}" pattern="0.00" maxFractionDigits="2"/>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JASChatWeb 网页聊天室 1.0版--群聊+私聊+贴图 预览 http://ww1.sinaimg.cn/large/560ce489gw1dhm3ju5uxgj.jpg 经过多人 多浏览器测试,效果良好 实现了各种聊天常用功能 (1)群聊 (2)私聊 私聊窗口可拖动关闭 (3)在线用户列表 (4)修改文字颜色 (5)贴图功能 可设置图片大小, 并且可以预览 (6)清除聊天消息记录 (7)声音功能 并可手动关闭和打开 (8)头像 (9)表情 另内里有桌面版和源程序,服务器端口设置了1215 ------------------------------------------------------- 如何使用,部署 MySql: (1)用winrar打开 JASChatWeb.war文件, 在目录 \WEB-INF\classes\com\jas\www 下找到 jaschatweb.sql文件, 解压到C盘根目录 (2)用winrar打开 JASChatWeb.war文件, 在目录 \WEB-INF\classes\com\jas\www 下找到 DB.java文件 找到: conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/mydata?user=scott&password=tiger"); 把3307的端口改成你的mysql开放端口(默认是3306) (3)MySql中用管理员权限运行 source c:\jaschatweb.sql (建表文件) Tomcat: (1)把压缩包里的 JASChatWeb.war文件 放置到 tomcat/webapps目录下 (2)打开tomcat/conf/web.xml文件 ,找到 <session-timeout>30</session-timeout> 一行, 把30改成 1-5的数(作用设置是session超时时间,用于扑捉用户直接关闭浏览器时的下 线状态) 完成以上两步后打开tomcat即可在浏览器运行 http://你的IP:tomcat设置端口/JASChatWeb/ 打开 -------------------------------------------------------- --------------------------------------------------------------- 技术实现: JSP+Servlet+mysql+jquery+ajax+flash(实现各浏览器播放声音) 主要文件介绍: 前端 (1)login.jsp--登陆页,设置session,还有更改了用户的登陆状态 (2)index.jsp--主要聊天页面 (3)jas.js -- jquery+控制声音flash插件+颜色选择器 (4)jas2.js -- 页面主要逻辑的JS, 各种前端功能实现 (5)tom.js -- 后期做的实现了聊天框拖曳的JS (6)jas.css -- 页面布局 后台 (1)DB.java --用于JDBC的链接 (2)Deal.java --群聊的收发逻辑 和 数据库交互 (3)Ptalk.java -- 私聊的各种逻辑(收发只在内存中,没使用数据库) (4)UserList.java -- 用户列表的逻辑 (5)SL.java ServetLogout.java -- 两个监听器,一个负责监听用户session超时,另一个用于服务器关闭时清除用户登陆状态 -----------------------------------------------------------------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值