杂七杂八
来源:互联网 发布:中国进出口最新数据 编辑:程序博客网 时间:2024/04/30 12:10
1、从jsp注入到Action后台的list集合失败可能原因:
1)页面采用<input name="xxxList[x].name" ....>
2)后台Action中增加xxxList对象,里面放置实体对象
3)xxxList的getter和setter方法
2、更新明细记录时可以采用先全部删除后插入
3、javascript 属性查找链:自身活动对象>prototype原型对象>父类的活动对象 找不到返回undefined
4、闭包是通过在对一个函数调用的执行环境中返回一个函数对象构成的
5、dialog中获取DOM或jQuery对象
dom: dialog.innerFrame.contentWindow.document.getElementById("id").value;
jQuery: dialog.innerFrame.contentWindow.jQuery("#id");
6、null和undefined区别
undefined是window的一个属性,与NaN一样;
null是对象引用类型,undefined是特殊类型
1)当属性不存在或变量只有声明没有初始化时会是undefined
2)document.getElementById("notExistId"); => null
9、并发控制
后台:保存后生成一个Map<clazzName, Map<eid, EntityVersion>> 的结构数据,第一层是类名,第二层是实体id,第三层是版本号,每次修改或删除操作,都会查询上面的那个Map中的版本号,是否与前台传来的版本号一致,不一致抛出异常给前台;
前台:使用自定义标签当进入页面时就从后台查询版本号放到页面,以便表单提交后与后台版本号比较
10、struts的token控制重复提交:
1)配置文件中配置对哪些方法进行控制;
2)页面中加入<s:token>标签,在一个页面上打开一个Dialog,该dialog是另一个页面,两个页面都有token控制的话,提交外面父页面时struts会提示token不匹配,Session中以为null;如果去掉dialog框中页面中token标签的话,提交dialog框中到后台就会导致token参数找不到问题,即使用ajax也不行
解决方法:修改调用方法名字,使其不再匹配struts配置token规则,或者修改struts配置,一般采用重新加一个方法,避开struts配置的规则,在这个方法中再次调用刚才调用的那个方法就不会有问题了。
public changeMethName() {
beforeCallMethod(); //这样就不会被struts的token配置拦截,只拦截第一次访问的方法
}
11、首字母大写
StringUtils.capitalize("abc"); => "Abc"
12、Apache convention规约
constant的name从default.properity struts.convention规约
Action映射到jsp的规则
/webroot/${actionNamespace}/action名字中除去最后的Action的部分首字母小写/方法名字以驼峰规则分割出多个词,并已“-”分割
13、onunload、onbeforeunload
1)都是在刷新或关闭时调用
onbeforeunload在onunload之前执行,还可以阻止onunload的执行
2)可以放到body、frameset、window中
14、润乾报表
1)对字段排序无效,使用select
原因:设置了多个排序select,色了传统排序只能设置一个,并且是第一个
2)如何将参数表单和普通报表结合
3)打印报错,表达式subList中参数类型错误,原因:数据库连接错误
15、ie7 colSpan动态显示失败
1)修改colspan改为colSpan,按照驼峰规则变换大小写,全部小写不行(已验证)
2)<nobr>...</nobr>
3)设定宽度为像素 width=100px;
说明:对于ie7/6中使用setAttribute时,key中要采用驼峰规则,否则失效
16、创建新的img对象时,要先对src赋值,后对width/height赋值才会起效,否则图片的本身大小会覆盖
17、当系统时间被修改为以前的某个时间时,MyEclipse中修改的文件不会同步到tomcat中,因为会对比时间,保持tomcat中文件的修改时间最新,这是测试的时候将系统时间改为了老时间后,忘记改回来,在修改代码后发现修改没有起效,这是真的就捉急了。
18、reload会使ie弹出提示框
解决方法:
1)window.location.href=window.location.href
2)采用submit方式(已验证)
3)将form的post方式改为get
19、reset类型的按钮重置功能失效
原因:对于remove掉的输入元素失效
table中队width设置百分比是,一般留一个不设置width的td,让浏览器自动计算
20、nowrap解决td中中文和英文换行
使用省略号解决文字超长
实例:
<td nowrap="nowrap">
<div style="overflow:hidden; width:50px; text-overflow:ellipsis">
<nobr>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</nobr>
</div>
</td>
21、给title换行
1)直接拼接到title的值,
或者
,使用js则需要使用replace("\n");
22、a标签中onclick执行完后,最好return false; 否则默认事件会执行
23、a.href="#"与a.href="javascript:void(0)"区别
1)a.href="#"点击链接后页面会向上滚到页首,#默认锚点为#top
2)a.hfre=“javascript:void(0);” 页面不动,什么也不执行
说明:点击连接后,不想是页面滚动到野兽就用javascipt:void(0) 不要使用#,return false也有同样的作用
23、word书签可以在生成导出word文件时作为标记点放值进去
oracle
1、“&”是特殊字符处理
方法一:set define off
set define off 则关闭该功能,"&"将作为普通字符,如上例,最终字符就为“SQL&Plus”
set define off关闭替代变量功能
set define on 开启替代变量功能
set define * 将默认替代变量标志符该为"*"(也可以设为其它字符)
方法二:在SQL语句中将'&'替换成chr(38),因为chr(38)是'&'的ASCII码
SQL> Select 'Tom' || chr(38) || 'Jerry' from dual;
方法三:分拆原来的字符串
SQL> Select 'Tom' || '&' || 'Jerry' from dual