页面错误毕业设计之错误集锦(六)

PS:天今上午,非常郁闷,有很多简略基础的题问搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!

          貌似好几天都没有总结错误了,有两方面的原因,第一:万事开头难,前面会利顺很多,因此遇到的错误就少了;第二:前面遇到的题问一般都比较难,还没有束结。不过,估计前当会有很多错误的,先做好心理准备,这不天今就来了

        想做的好一点的统系,统计图表那是必须的,如果是用就是就是jsp做的话,那就简略了,jfreechart以来全搞定,但是........我现在是用ExtJs,想着客岁出的4.0版本自带图表功能,就不须要用第三方包了,于是下了一个ExtJs4.1版本,习学了一下图表的做法,发明也很简略的,于是就自己写了一个,谁想出乎我的料意啊,4.X版本居然不兼容2.X版本,呜呼.......这不是坑我吗,难道要让我推倒重来吗,显然不可能,看来只能旧调重弹,用第三方jar包了。这个不着急,先来看看其他的题问

    1.ExtJs和spring、hibernate起一时的分页题问

         之前做统系的时候没有涉及到分页,第一次做分页,第一应反就是select top ........,可是,oracle居然没有top句子,要用的话只能用其他语句替代了,看了一下太烦麻了,就想着直接在前台分页得了,可是貌似没胜利,好吧,这个时候然突发明用hibernate来做分页特殊简略,只须要区区3句代码,如下:

Query q = session.createQuery("from table"); 
q.setFirstResult(0); 
q.setMaxResults(10); 
List l = q.list();

    如果是有spring,dao继承自HibernateSupportDao的话,那就如下:

/** 
 * 用使HQL语句停止分页查询作操 
 * offset 第一条录记的索引 
 * pageSize 每页须要示显的录记数 
 * @return 前当页的全部录记 
 */  
public List findByPage(final String hql, final int offset, final int pageSize){  
    List list = getHibernateTemplate().executeFind(new HibernateCallback() {  
          
        public Object doInHibernate(Session session) throws HibernateException,  
                SQLException {  
            List result = session.createQuery(hql).setFirstResult(offset)  
                            .setMaxResults(pageSize)  
                            .list();  
            return result;  
        }  
    });  
    return list;  
}

    而extjs页面只须要这样

/** 
 * 用使HQL语句停止分页查询作操 
 * offset 第一条录记的索引 
 * pageSize 每页须要示显的录记数 
 * @return 前当页的全部录记 
 */  
public List findByPage(final String hql, final int offset, final int pageSize){  
    List list = getHibernateTemplate().executeFind(new HibernateCallback() {  
          
        public Object doInHibernate(Session session) throws HibernateException,  
                SQLException {  
            List result = session.createQuery(hql).setFirstResult(offset)  
                            .setMaxResults(pageSize)  
                            .list();  
            return result;  
        }  
    });  
    return list;  
}

    堡垒了,有木有,太壮大了,震动中................

    2.struts跳转问访jsp页面与直接问访jsp页面的别区

        之前做项目是为了加快速度,因此就跳过了登录模块,直接去求请index.jsp页面,功能都做的差不多的时候把登录模块和index页面整合到起一的时候现错出误了,之前心想着不就是struts跳转一下吗,结果做起来前当才发明,struts跳转从前前当index页面加载的货色都找不到,可是明显直接问访index页面的时候好好的,细心想了一下前当才发明,来原两者是有别区的,从struts跳转是从外到里加载件文,而直接问访index的话,是从里到外加载件文,点发出不同致使了路径不同

    3.DWR架框现出erro弹出框题问

        这两天毕业设计只剩下两个技巧难点了,一个是权限管理,一个是统计图表。对于权限管理,难点在于在js件文里取到权限值,一般用ajax以可就回返data,但是为了使自己的毕设有技巧含量,遂定决用采全新的dwr架框,这样也有挑战性一点,可谁曾想一个error弹出框居然花了我两天的时光,呜呼,这挑战性价代也太大了吧,不过还好总算是出来了,先祝庆一下哈!如下就是那个error弹出框所对应的的http响应(这里我想说的还是那句话,要动主去找错,就像此次,除了弹出一个error对话框以外,myeclipse没有存保,firefox没有报错,即使是用firebug,控制台什么的都没错,最后居然是在络网下的XHR里头的求请连接下响应里头才找到的,不容易啊,就这一个线索,居然会藏这么深,这是磨练我的程编教训哈)话废不说了,如下图所示

    页面和错误

        阅历了这个错误,发明自己对于百度和google的依赖性太强了,以至于有多个错误现出的时候没能分析错出误的根本原因,而是一股脑的就去百度或者google了,而且不巧的是,dwr这个架框的息信在络网上很限有,用汉语表述的就更少了,以至于只能直一头皮看英语的了。

    每日一道理
岭上娇艳的鲜花,怎敌她美丽的容颜?山间清澈的小溪,怎比她纯洁的心灵?

        网上对于这个题问都会合在dwr和spring的结合上,时当我就在想,我不结合可以吗,我不就是想用一下吗,有要必这么烦麻吗?但是网上都这么说,再加上自己也没什么好方法,也就只能试一下了,废了好半天把dwr和spring结合在起一了,一行运,还是一样的error,续继索搜,结果有人说如果在spring总遇到了aop(面向切面程编),结合的时候又多出一些货色,好吧,那就这能再加货色吧,十分困难整合好了,一行运,还是那个悉熟的error,此时真有点失望了,一天就这样从前了,洗洗睡吧。

       天今早上起来,从新审阅这个题问的时候,发明自己有点“当局者迷了”,何不跳出前当的境困,静下心来想一想,而不是被络网所阁下想到这里,断果关掉索搜框,静静的看着这个错误,开始分析,既然弹出error,那么在什么地方发生这个error的呢,上图中很明显,javaClassName:java.lang.Throwable,message:error,而比对那些胜利的项目,这个地方现出的应该是你要得获的值,也就是说你的这个值现出题问了,而在程序当中值现出题问,非无两种情况,null和类型转换错出,既然这样,那我们就一一验试,首先测试了一下目标值,非空,再看类型,由于在oracle数据库中这个字段是列序的,为number类型,映射到java中就是bigdecimal,而这个值在java中不太见常,会不会是这儿错出了?那就直接转换成string类型得了,结果还是error,那就换成最见常的int吧,结果.....结果就没有error了,胜利了!这一刻不容易啊,写下来,记念一下。等等,然突发明自己return的时候经已定限成了integer类型,天啊,霎时觉感自己有多傻了,唉,时光经已浪费了,只能以此为教训了。

         话废不说了,上面就把置配dwr的进程写一下,做个备份吧

    第一步:dwr.jar(如果要与spring结合的话,还须要spring-web-servlet.jar)

    第二步:置配web.xml

<!--dwr架框设置 -->
	<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

    第三步:置配dwr.xml(一般与web.xml一同目录别级)

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
	<allow>
		<create javascript="Permission" creator="new">//这里的javascript是前当动主生成的js件文名,保持一致以可就了,
                                                              //creator如果是和spring结合的话就选spring,name就是beanName了
			<param name="class" value="com.shiep.dwr.Permission"></param>//如果和睦spring结合那就name是class了,
                                                                                     //value的话就是你要调用的java方法在所的类了
		</create></allow>
</dwr>

    第四步:编写上文提到的java方法

package com.shiep.dwr;

import javax.servlet.http.HttpSession;

import org.springframework.context.ApplicationContext;

public class Permission {

	public int getIdRole(HttpSession session){
		return (Integer) session.getAttribute("idRole");
	}
}

    第五步:html或者jsp页面引入dwr的js件文

<script type='text/javascript' src='../dwr/interface/Permission.js'></script>//这里就是动主生成的js件文,名字与dwr.xml中的保持一致以可就了
		<script type='text/javascript' src='../dwr/engine.js'></script>

    第六步:在js页面调用java方法

var idRole;
DWREngine.setAsync(false);
Permission.getIdRole(load);
DWREngine.setAsync(true);
function load(data) {
	idRole = data;	
}
alert(idRole);

    OK!至此一切搞定!

文章结束给大家分享下程序员的一些笑话语录: Bphone之你们聊,我先走了!移动说:我在phone前加o,我叫o缝;苹果说:我在phone前i,我是i缝;微软说:我在phone前加w,我叫w缝;三星说:你们聊,我先走了!
将来王建宙写回忆录的时候,一定要有一句“常小兵为中国移动的发展做出了不可磨灭的贡献”。

posted @ 2013-05-04 20:55  坚固66  阅读(206)  评论(0编辑  收藏  举报