您的位置:首页 > 编程语言 > Java开发

java 实习遇到的问题和一些小经验(第一个月)

2011-12-05 20:47 597 查看
都是随手记录的可能比较乱;但记录我的成长

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: