项目中遇到的问题
1、js正则限制输入框只能输数字
οnkeyup=“this.value=this.value.replace(/\D/g,’’)”
2、数据库查当天数据
select * from ESD_TWO_MAIN e where trunc(e.create_time)=trunc(sysdate);
3、微信页面左右晃动
不要把div等标签宽度设太宽,比如100%有时就不行。标签宽度只要小于屏幕宽度,就不会晃了。
4、排序时空值会出现在第一个,想要把它放后面
from EsdTwoFlow a where a.flowId = ? and a.status = ‘1’ order by a.updateTime desc nulls last"
5、神奇的问题
页面用ajax返回一个data数据,他是个集合,我在循环时写成
success:function(data){
$("#periods").empty();
var periodsList = JSON.parse(data);
for(var i = 0;i<data.length;i++){
var newOption = document.createElement("option");
newOption.value = periodsList[i].periods;
newOption.text = periodsList[i].periods+"期";
$("#periods").append(newOption);
}
}
它报错periods未定义,但能查出数据,但循环完不继续执行下面代码。改成:
success:function(data){
$("#periods").empty();
var periodsList = JSON.parse(data);
for(var i = 0;i<periodsList.length;i++){
var newOption = document.createElement("option");
newOption.value = periodsList[i].periods;
newOption.text = periodsList[i].periods+"期";
$("#periods").append(newOption);
}
}
就没事了。原来这个for里的长度声明还有这么大的作用!
6、js把时间转为毫秒值
new Date(commitTime).getTime();
这种方式要求commitTime必须是字符串!我直接从bean里拿了个date,结果老是不行。
7,–查询被锁定的表信息
select object_id,
session_id,
serial#,
oracle_username,
os_user_name,
s.process
from v$locked_object a, v$session s
where a.SESSION_ID = s.SID;
–解锁
ALTER system kill session '94, 22011';
8,List集合remove不能是integer,只能是int。
9,this获取不到对象,很经典的错。
最后我的解决办法是:
1
$(document).on('click', '.numAdd', numAddOnClickFunc);
2
var numAddOnClickFunc= function () {
loginValidate(itemNumsChanged_logined,$(this));//
}
3
function loginValidate(method,params) {
method(params);
}
4
var itemNumsChanged_logined = function (temp) {
//var $this = $(this);
var $this = temp;
本来它2里没传$(this),4里也没有temp,他想直接var $this = $(this);但这个是引不到this对象的。
应该在2里传那个参数,然后4里作为函数参数传过来。
10,本地web调其他机器service出现问题:查出来的日期加了12小时。经查是因为序列化内容过多,然后写了个方法删了就好了。我觉得这不是解决办法。然后百度序列化,发现百度说重要的数据尽量不要序列化,容易出错。
http://blog.csdn.net/l1585931143/article/details/59728218
讲了序列化里id的问题。
如何不让变量序列化:
http://blog.csdn.net/lisulong1/article/details/52269262
让transient变量序列化:
http://837062099.iteye.com/blog/1462714
序列化的一些注意事项:
http://blog.csdn.net/tayanxunhua/article/details/20119809
小坑
http://blog.csdn.net/goondrift/article/details/43149321
Intellij远程调试
http://blog.163.com/spring_gwn/blog/static/8669400200962893951171/
尝试另一种解决方案
http://www.cnblogs.com/xiaozhang9/p/jackson.html?utm_source=itdadao&utm_medium=referral
11,一个关于苹果自带浏览器时间格式的坑
http://www.cnblogs.com/yiven/archive/2016/11/11/6053872.html
12,苹果浏览器不显示.0
要把数字转为字符串
http://www.jb51.net/article/35005.htm
13,导maven包有intellij提示不出来的直接去mvnreporistory.com搜。
14,我直接建了个maven项目,右键找不到新建jsp的按钮。百度说的是web项目才行。于是在file - project structure - modules 里,右键项目,add添加web,然后指定哪个文件夹是用来放页面的。点击完成他会自动生成个web文件夹,不过这个文件夹没什么用,删了就行。
Tomcat在右上角的Eidt Confugration里,tomcat里deployment直接添加项目即可,右边那个Application context是让写访问路径的。然后一运行就跑起来了。
15、发现一个超级奇葩的问题
Tomcat发布项目后直接访问到index.jsp,但spring mvc的controller无法访问到。我怎么试都不行。我估计是pom文件新建时,包的设定有问题,导致war包打的有问题。
16,
单例和多例的详细描述:
- 什么是单例多例:
所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理,比如action; - 如何产生单例多例:
在通用的SSH中,单例在spring中是默认的,如果要产生多例,则在配置文件的bean中添加scope=“prototype”; - 为什么用单例多例:
之所以用单例,是因为没必要每个请求都新建一个对象,这样子既浪费CPU又浪费内存;
之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理;
用单例和多例的标准只有一个:
当对象含有可改变的状态时(更精确的说就是在实际应用中该状态会改变),则多例,否则单例; - 何时用单例?何时用多例?
对于struts2来说,action必须用多例,因为action本身含有请求参数的值,即可改变的状态;
而对于STRUTS1来说,action则可用单例,因为请求参数的值是放在actionForm中,而非action中的;
另外要说一下,并不是说service或dao一定是单例,标准同第3点所讲的,就曾见过有的service中也包含了可改变的状态,同时执行方法也依赖该状态,但一样用的单例,这样就会出现隐藏的BUG,而并发的BUG通常很难重现和查找;
上一篇: 项目中遇到的几个问题