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

来源:互联网 发布:散打运动员的身体数据 编辑:程序博客网 时间:2024/05/16 07:21

都是随手记录的可能比较乱;但记录我的成长


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

原创粉丝点击