都是随手记录的可能比较乱;但记录我的成长
2.Toggle();如果被选元素可见,则隐藏这些元素,如果被选元素隐藏,则显示这些元素。(jquery)
3.Strut请求的跳转;
4.前台和后台
5.Window.open(“url”,”_blank”);其中_blank属性表示打开一个空白页面
6.动态生成行号:
<c:foreach var=” ” items=”” varstatus=”index”>
<li>${index.index+1}</li> //注意:行号本身为从0开始的
</c:>
7.Hibernate的属性配置
<prop key="hibernate.jdbc.batch_size">30</prop>
<prokey="hibernate.default_batch_fetch_size">
30</prop>
<prop key="hibernate.query.substitutions">true 1, false 0
</prop>
其中default_batch_fetch_size:为hibernate 关联的批量抓取设置默认数量(建议为4,6,16)
Batch_size: 非零值,允许Hibernate使用JDBC2的批量更新. 取值 建议取5到30之间的值
Query.substitutions:你可以使用hibernate.query.substitutions在Hibernate中定义新的查询符号. 例如:
hibernate.query.substitutions true=1, false=0
将导致符号true和false在生成的SQL中被翻译成整数常量.
8:事物的配置
<!-- 配置事务管理器 -->
<bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<propertyname="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置事务的传播特性 -->
<tx:advice id="txAdvice"transaction-manager="transactionManager">
<tx:attributes>
<tx:methodname="save*" read-only="false"/>
<tx:methodname="update*" read-only="false"/>
<tx:methodname="delete*" read-only="false"/>
<tx:method name="commits"read-only="false"/>
<tx:method name="*"read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 配置哪些类的哪些方法参与事务 -->
<aop:configproxy-target-class="true">
<aop:advisorpointcut="execution(public *com.chaomeng.service.impl.SaleServiceImpl.*(..))"advice-ref="txAdvice" />
</aop:config>
9.Sturts 1.x 配置
<form-beans>
<from-bean
name=” ” type=”org.apache.struts.validator.lazydatorform”>
</from-beans>
<action name=” ” scope=” ” parameter=” ” validate=””>
<forward name=” ” path=” ”/>
</action>
10.一个简单的正则表达式
Var reg = /^ $/;
Var example = $(“#...”).val();
If(example.match(reg)){
}
11. org.xml.sax.SAXParseException: The content of element type"action" must match(…)
Xml的action文件配置未符合规范。(本次为多添加了一个“)
12.关于如何关闭与启动网页右键功能:
function document.oncontextmenu() {
window.event.returnValue = true;
}
13.<html:form>与<g:from>的区别
<g:>属性更多
14: Error marshallingcom.tms.sb.entity.SbBoxType: Error reading bean. Input parameter probably isnot an object. (Missing: {). See the logs for more details.
出现该类问题:可能为dwrmethod引用的方法出现问题(本次为方法名写错)
16:grid 的渲染问题:在所版定的字段后面添加
renderer=”function (data){
return data+” 所需要的格式 ”
}”
17.struts1 与struts2 的区别:
struts1 直接 依赖与servlet 的api
1. Struts2 如需调用 servlet 的api 需要通过actionContent类访问
HttpServletRequest request =ServletActionContext.getRequest();
HttpServletResponse response =ServletActionContext.getResponse();
HttpSession session =ServletActionContext.getRequest().getSession();
HttpSession session = (HttpSession)ActionContext.getContext().get(
ServletActionContext.SESSION);
Map map = (Map) ActionContext.getContext().getSession();
2.通过Ioc访问servlet对象;提供的接口对象均为aware结尾的;比如applicationaware,sessionaware ……..
Struts 1 Action类是单例类,因只有一个示例控制所有的请求
Struts 2 Action对象每一个请求都实例化对象,所以没有程安全的问题
Struts 1使用ActionForm对象捕获输入
18:关于dwr 同步异步的问题(可能的问题先执行dwr方法的后面内容导致获得不到dwr修改的内容)
关闭同步 DWREngine.setAsync(false);
开启同步DWREngine.setAsync(true);(默认是开启状态)
19:实体的属性id设为char() 在hibernate中选择uuid:可以避免因为分布式的系统而导致的id值重复
20:dwr 的js方法的回调函数
21:如何区别新增和编辑
判断所选择行的id(有id表示保存。否则就是新增)
获得选择行的方法:
Function getGrid(){ Ext.getCmp(‘某个grid 的id’); }
var rec = getGrid().selModel.getSelected();
rec.get(‘所需要的id’)
22.关于eclipse 中添加struts 的步骤
1.下载struts-blank-2.0.03.war文件
2.复制其中的lib文件夹下的所有jar文件
3.复制src文件夹
4.添加你的welcome文件
23:== 与equal()的区别
==比较值;equal 比较内容
24:下拉框的配置:
在Action 中配置你所需要的静态name
添加你querySbCodeType 方法所在的service
给页面传递combox所需要的信息
SbCodeType innerOut = sbCodeTypeService.querySbCodeType(SB_CODE_TYPE_CUSTOMER_TYPE);//客户内外类型
request.setAttribute(CUSTINNEROUTERS,innerOut);
25:时间类型数据格式”yyyy-MM-dd”注意格式必须是这样不能包含空格
本次错误:”yyyy-MM-dd ”在最后位置出现了空格导致解析失败
26:表单验证问题:(填完值但是仍旧出现说该字段未填),可能是validate-xx.xml中的属性字段写错
本次出错为:属性后面多了一个空格;
27:页面加载时就显示数据:(写在onRender()里面。)
方法1:grid.store.load();
方法2:利用保存按钮显示;
28:如何创建一个关于数据字典的下拉框:
需要两个实体部分:1:数据字典部分;2:调用实体
在数据字典中添加所需要的编码和值;
在调用的实体中声明数据字典的service;
调用数据字典service的方法获得给定编码的值;
通过request.setAttribute()方法给页面传值;
在combox中设置name,value,property,label
其中name为request中设置的传递参数值;
Property为绑定字段的名称;
Label为显示的文本
Value:保存时候用到的字段值;
29:菜单的配置:需要在menu-zh-cn.js 和common_zh_cn.property中添加
30:dwr 在客户端对时间格式的转换
如果你有一个String(例如:“2001-02-11”)在Javascript,你想把它转换成Java日期。那么你有2种选择,一是使用Date.parse()然后使用DataConverter传入服务器端,还有一种选择是把该String传入,然后用java的SimpleDateFormat(或者其他的)来转换。
31:struts1 :中如提取form的值LazyValidatorFormdataForm = (LazyValidatorForm) form;
32:oracle 存储过程:
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER,
参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN
END 存储过程名字
33:如何处理上下两张表联动;
grid.setModel.on(‘rowselect’,function(){
rowselect();
});
rowselect(){
Var rec = getGrid().selModel.getSelected();
Var questionnaireSubjectId = ‘’;
If(rec != null){
questionnaireSubjectId = rec.get(‘questXXXX’);
}
getAns(getGrid2(),questionnaireSubjectId);
}
Function getAns(grid, questionnairesubjectId){
Grid.whereCondition = “questionnairesubjectid=’”+questionnairesubjectid+”‘ ”;
Grid.store.load();
}
34:js中使用el表达式
必须加引号:比如:alert(”${xxxx}”);
35:在js中利用服务器返回值构建一个数据查询条件
Var str =””;
<c:forEach var=”obj” items=”objList”>
Str= str+ “ ‘ ” + ” ${obj.condition }”+ ” ’ ,”;
</c:>
Str = str.subStr(0,str.length-1);
Grid.whereCondition=” id IN (” +str+”)”;
Grid.store.load();
本次为构建一个in查询语句;
36: java.lang.OutOfMemoryError: GC overhead limit exceeded
这个是JDK6新添的错误类型。是发生在GC占用大量时间为释放很小空间的时候发生的,是一种保护机制。解决方案是,关闭该功能,使用—— -XX:-UseGCOverheadLimit
解释:
JDK6新增错误类型。当GC为释放很小空间占用大量时间时抛出。
一般是因为堆太小。导致异常的原因:没有足够的内存。
解决方案:
1、查看系统是否有使用大内存的代码或死循环。
2、可以添加JVM的启动参数来限制使用内存:-XX:-UseGCOverheadLimit
在linux服务器中,重启tomcat时在其.sh文件中某行加入-XX:-UseGCOverheadLimit参数即可
37:网络爬虫的处理:
User user = (User)request.getSession().getAttribute("user"); if (((url.indexOf("/admin/") != -1) || (url.indexOf("/export/") != -1)) && ((user != null && !StringUtils.equals(user.getType().toString(), "Manager")) || user == null)) { request.getRequestDispatcher("/user/toLogin").forward(request, response); return; }
38:出来开始时间小于截至时间:
在两个<g:date> 中增加compardOrderId=”from_Date,to_Date”
其中form_date为起始时间styleID;to_date为截至时间的styleId
39:如何创建tab(以两个tab标签为例)
1:创建连个按钮(用于显示tab标签的title)
对这连个按钮添加事件处理方法:如下
Functiontab_box(i){
If(j==1){
$(“#tab1”).css({display:”block”});
$(“#tab_btn1”).attr(“class”,”tab_mouseDown”);
$(“#tab2”).css({display:”none”});
$(“#tab_btn2”).attr(“class”,””);
}else if(i==2){
$(“#tab2”).css({display:”block”});
$(“#tab_btn2”).attr(“class”,”tab_mouseDown”);
$(“#tab1”).css({display:”none”});
$(“#tab_btn1”).attr(“class”,””);
}else{
Ext.Msg.alert(“提示”,“…….,…”)
}
}
<div id=”tab1”></tab>
<div id=”tab2”></tab>
40:新建一个存储过程:
File->new->programwindow->procedure
41:获取select选中的text:
$(“#ddlRegType”).find(“option:selected”).text();
获取select 选中的value:
$(“#ddlRegType”).val();
获取select 的索引:
$(“#ddlTegType”).get(0).selectedIndex;
42:jquery的对象方法:
.show()显示;
.hide()隐藏;
.toggle()显示或隐藏切换
43:struts1的基本验证:
byte,short,integer, 检验值是否能被转换成对应的基本数据类型
long,float,double
creditCard 检验输入域是否是一个合法的信用卡号码
date 检验输入域是否是一个合法日期
email 检验输入是否是一个合法Email地址
mask 检验输入域是否能成功匹配一个正则表达式
maxLength 检验值的长度是否小于等于给定的最大长度
minLength 检验值的长度是否大于等于给定的最小长度
range 检验值的范围是否在最大值和最小值之间
required 检验输入域是否为不为空,或不包含空格值的长度是否大
于零;
最后可以在jsp页面添加<html:javascript formName="表单名字"/>
并且<html:form>中添加, onsubmit="return validate表单名字(this);"
44 :svn在提交之前需要在本地运行。通过才能提交
45:>= ge ,<=le
46:如何处理一个grid中显示多个表的数据
方法1:
在onrenderer中添加方法;
对grid注册load事件
Grid.store.on(‘load’,function(store){
Var datas =store.data;
For(var i= 0 ;i<datas.length;i++){
Dwrserver.XXX(‘paramter’ , {
Callback:function(obj){
If(obj !=null){
Datas.get(i).set(“xxxx”,obj.xxx)
}
},async :false
}
})
}
})
47:extjs事件监听:
a:在定义组建的配置是定义
1. listeners:{'blur':function(){
2. alert(1);
3. }
B:对变量组建通过设置on
1. gridPanel.on('rowdblclick',function(gridPanel,_rowIndex,e){
2. alert(2);
3. }
C:通过组建变量方法addListener()
1. gridPanel.addListener('rowclick',function(){
2. alert(3)}
3. );
48:grid中设置按某个字段排序的问题
grid.orderBy(字段名:’顺序’); 顺序(ASC,DESC)
49:struts的配置文件要放在src中
50:如何处理一个form 提交到不同方法处理;
1:在sturts2中提供了<s:submit name="save" value="保存" align="left" method="save"/>可以根据submit的method对方法进行判断;
2:普通方法处理:<script>
function print(){
document.forms.testForm.action="你要转到的action";
document.forms.testForm.submit();//提交表单
}
</script>
在这个方法中是在提交前改变你要提交的路径;
51:在配置好struts2的拦截器后出现取不到form表单的值:
解决:注意在sturts.xml中配置拦截器的执行栈和栈的执行顺序;
eg:
<interceptors>
<interceptor name="myInterceptor" class="myInterceptor"></interceptor>
<interceptor-stack name="myInterceprotStack">
<interceptor-ref name="myInterceptor"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<action name="login"class="loginBean" method="execute">
<result name="success">/pages/login.jsp</result>
<result name="login">/pages/faiure.jsp</result>
<interceptor-ref name="myInterceprotStack">
</interceptor-ref>
</action>
注意:action中的interceptor-ref 为栈的name;
52:在当前页面提交表单后提示保存成功与否;然后执行跳转操作:
方法:在action中设置状态位:成功:success;异常:failure;
在当前页面设置$(document).ready(function(){在其中判断是否保存成功;});
53:window 下停止和重启mysql;
在doc下 netstop mysql net start mysql