java小问题解决方案整理.docx

上传人:scccc 文档编号:13564712 上传时间:2022-01-16 格式:DOCX 页数:10 大小:27.74KB
返回 下载 相关 举报
java小问题解决方案整理.docx_第1页
第1页 / 共10页
java小问题解决方案整理.docx_第2页
第2页 / 共10页
java小问题解决方案整理.docx_第3页
第3页 / 共10页
java小问题解决方案整理.docx_第4页
第4页 / 共10页
java小问题解决方案整理.docx_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《java小问题解决方案整理.docx》由会员分享,可在线阅读,更多相关《java小问题解决方案整理.docx(10页珍藏版)》请在三一文库上搜索。

1、、, 、.前言干程序员快两年了, 这几天就要结束程序员生涯, 以后去市场部了,哈哈, 不知是悲还是喜。 但是偶尔还看看程序帮人解决解决问题。 回头的时候才发现, 刚开始学习和工作的时候, 对错误倒是做了很多总结和记录, 渐渐的往后就越来越懒, 后面一年几乎都没怎么写东西记东西了。现在要半转行了,想想我们这个行业最愉快的事莫过于几个人一起解决问题,尤其解决之后的那种感觉。 于是突然来了感觉, 把之前的东西都找出来总结到这里, 希望能对看到的人有些帮助,都是年轻时候写的东西,可能有些幼稚的, 甚至有不对的地方, 哎读到的兄弟们就见谅吧!总结的小东西1. 错误。错误提示: Action/ does

2、not contain specififed methodcheck logs 原因:struts-config-xml中拼错单词,或者jsp中act.do?method=双引号中拼 错单词 ”;2. 日历格式。定义日历类型: Calendar ca = Calendar.getInstance();3. Jar包突然不管事。有时候,重装了 MyEclipse后,之前运行好好的工程突然 报错了,而且报了很多的错,都是 Map、List之类的变的不认识了。很奇怪 把,明明之前都正常啊,别急,报错了就改呗。首先右键项目 - Biuld Path- configure Biud Path将Libra

3、ries中包全部删掉。然后再点 AddJars将lib中的包 全部导回来。如果报的错误说 jdk 版本不对,那么将Window/Preferences/Java/Compiler 中level 改为当前适用的 jdk 版本4. 注意事项:MAC各层需要层层依赖,不能出现双向依赖,所以dao层不可使用 request 和 session。5. SimpleDateFormat 是可以这么用的 在声明的时候= newSimpleDateFormat(“yyyy-mm-dd ”),然后再用它format 出来就是这个形式了。6. 错误。错误提示: not null property referenc

4、es a null or rransient value. 原因: name 属性没有与java 类中的 formbean 对应准确。7. 注意。一个页面,这个页面时从别的页面跳转而来,这个页面跳转来时会传播一些的查询条件。这里的问题就是:有时候你选好了查询条件,键入了要求查询的新的条件后,点击查询,完事你发现条件又自己回去了。这个原因很简单, form 中的 action 被置空了。8. 父页面的跳转指令: document.window.location= ” ;或者: window.parant.location=” ;9. 复选框。 String a = request.getPara

5、meterValues“(change”)0 。若当前复选框是 被选中的,这会将复选曲的值赋予 a,否则会产生一个Exception。10. 自动跳转。2秒自动跳转的指令:将如下代码放在 jsp的java代码中即可 response.setHeader“( Refresh”,”2,URL=”);11. Ondblclick=()o 双击回应。12. 靠边设置: margin-left:0px; as right bottom,top13. 保持 table 中的内容不撑破页面的命令:style=” table-layout:fixed ”14. 将数值类型转换为科学技术法:fNumber(1)

6、c参数表示精确到小数点后几位。15. 关于EL表达式。(1) .jsp2的可以直接写不带c:out的$,但jspl的就不行。如何区分只需看 jsp 页面头的 % taglib prefix =curi =%即可, 这就是 jsp1 的。(2) .forEach 标签中,如果用到了 begin和end属性,是变量而非常量,不管jsp1还是2,都只能这么写:end= $var.XXX ”1 . (3). 一般的用标签显示的都是一个或一组对象,比如c:out value= $student.name ” 。但如果放的是一个或一组基本数据,可以直 接这么写:c:out value= $name /往页

7、面上输出时间: var activedate = new date();var activeHour = activedate.getHours();大写 VAR是错误 的。2 .获得值。getElementById(这得到一个值,而getElementByNames(则会得到一 个数组。3 . 获得样式:Document.getElementById().className;4 . document.getElementById( d ).style.display= non5 .嵌套了 iframe的页面,如果要为父页面赋值:parent.document.all( ):value=6 .

8、截取Enter命令。script language=javascript event=onkeydown for = document” If(event.keycode=13)Document.all.( buttonName ).focus;Document.all.( buttonName ).click;/script7 .以后的补充的:8 . Checkbox的属性中可以用到的:选中一个后使另一个变为不可用:document.getElementById(checkbox2 ).disabled= true ;比较第四条而言,disabled的前面无须用 style 点出来,直接di

9、sabled就可以了。这个要注意9 . document.all. 参数名.value同样得到name为“参数名”的值;或者可以直接“form名”.参数名.value,10 .比较第九条的通过参数名获得值而言, document.all(idName).value。是通过 id 获得的,这两者的区别就是all后面是跟点还是括弧。11 .调用父页面的方法,即通过某个页面打开你,你调用它的方法:Window.opener.方法名();刷新父页面:window.opener.location.reload();1. 关于string截取函数substring。在java里自然就是这个名字,变量.su

10、bstring(5,8) 意思是截取变量从第5个到第8个字符。而oracle中,substr(变量,5,8)意思则是从第五个字符起,数八个。2. 一个用户将表授权给另外一个用户查看。Grant select on TableName to用户名c3. 创建视图.creat or replace view name as select * form 表名。4. Slq技能。月累计 or 年累计。Sum()over(partition by tranc(rq,mm),一个主键 名order by rq,主键名)5. Mysql中的一个用法。Substring函数.平时是substring(变量,1

11、,12)。但当这样时: substring(变量名,10)的用法是取变量从第十个开始以后的所有字符,不管有多少。6. 有关于递归。 Strart with id= “ connect by prior id = p_id一般是出现在树状结构中,p_id是id的上一层。理角项id是p_id的子节点。意义在于:从某个指定的节点开始,遍历它下面的所有子节点。Prior后的意思为,以上一条记录的id作为下调记录的p_id,就是说遍历到这个节点以后, 再继续遍历以他为父节点的节点,一次往下。例:select * from dab13 where ny = 200912 start with dydm=

12、connect by dydm=sjdydm这里可能引发的错误就是:为where之后的条件,是在执行完 递归命令之后才会执行,而递归的执行又依赖于where条件的执行。于是就矛盾了。解决方案:Select * from (select * from dab13 where ny = 200912) start with dydm = connect by dydm = sjdydm7. Opper(字段名)放在opper中的字段将不再区分大小写。8. Select case when c1=c2 then 1 end9. select count(*) from stuff where id_

13、no in(0,1)(23 秒)。分析:-where条件中的in在逻辑上相当于or,所以语法分析器会将in (0,1) 转化为id_no =0 or id_no=1来执行。10. OR策略”,即先取出满足每个or子句的行,存入临时数据库的工作表中, 再建立唯一索引以去掉重复行,最后从这个临时表中计算结果。11. 利用rownum取得前几行的时候,不能出现这种条件 where rownum = 4因为,Oracle的rownum数值是在获取每行之后才赋予的,如果你sql的条件是判断等于某行,那么 Oracle会如此判断:有四行了吗?如果没有,那么 Oracle就会丢弃这些行,因为它不满足条件,如

14、果到了 5行,那么Oracle就 返回该行。但是答案是,永远也不会有“到了 4行”的情况发生。12. 随即打乱顺序的方法: select * from student order by dbms_random.value()13. 原来,timestamp类型和Date类型相通,可以直接给予。Calendar与 TimeStamp之间互转:Calendar cal = Calendar.getInstance();TimeStamp t = new Timestamp(cal.getTimeInMillis();Cal.setTime(t)M得到t的时间了,互转ok几种数据类型之间的转换你现把

15、字符串转换成 Date类型的public java.sql.Date toDate(String date) SimpleDateFormat dateFormat = new SimpleDateFormat();try dateFormat.applyPattern( yyyyMMdd );java.util.Date vDate = dateFormat.parse(date);return new java.sql.Date(vDate.getTime();catch(ParseException e) return null; 1、 index.jsp只能放在 WebRoot下,否则

16、就找不到了(真的吗?)2、 table” is not Mapped错误原因:hql是写的是PO对象,不是table名。3、 在action中,不能把取得service作为成员变量,这样的话会造成 No action instance for path /adminLogin could be created 的错误。很奇怪吧。Ps不能用impl直接获取, 必须是获取一个接口的对象,否则就报错:java.lang.ClassCastException4、 Struts的配置文件中,forward属性里的redirect属性设置为true ,则在jsp页面 getAttribute的时候,肯定就

17、全都是null。5、 今天员工机器报了一个无法找到Action中method的方法的错误,找来找去不知道原因,最后一点点尝试发现,竟然是因为action类的参数中mapping与form先后顺序放错造成的,我了个去!1、request.getParameterValues()方法用来获取 checkbox的值,一般是获取到一个数组,只 有那些被打了勾的才会被填充到这个数组当中。2、js中,el表达式要用双引号引起来3、如果使用的类本身没有注入DAO,但是继承的父类有被注入,想使用父类的方法时候,必须也要在 application.xml中加入一个 bean,如:4、Not for Mapped

18、一般应该是from后面的那个实体对象名字写错了5、现在遇到一个问题,就是如果我查询的不是一个表,出来之后页面用el表达式显示时候总是会说 java.lang.NumberFormatException: For input string: p_pact 。现在 DAO 查的时候用的是qsl语句而并非hql语句,我还不知道hql语句会不会也是这种 情况:this .getSession().createSQLQuery(sql);继续调试中()方式查询,会自动将查询出的结果按照对象类型6、 关于 hibernate 中的.createQuery封装,情况分以下几种:有两张表 Bbs (abc,b

19、cd ),表 Citrue1) from Bbs 。这种情况最简单,返回的2) s elect b.abc,b.aaa from Bbs b他们是简单的String 类型;3) select b.abc,c from Bbs as b,Cltrue as c String , 一个 Cltrue ;4) s elect b,c from Bbs as b ,Cltrue as c我说分析上面的这些情况,只是为了说明在Jsp 中如下写法: 如果是情况1 ,那么很简单,直接点(test.abc )出来就行情况2呢,要看abc的值,就需要test0 了,因为list 只能区别第几个,而对于每个 区间

20、,是没有相应的名字标示的,所以他不知道他的第一个里面放了一个叫abc的变量。情况3,要取abc的值:test0, 要取c1的值:test1.c1情况4,就不说了。另外要特别注明的事,如情况 2那样,只要两个字段,但是又不想用下标来取值,怎么办?这时候就可以这样写:select b.abc,b.aaa,new Map(b.abc as abc,b.aaa as aaa)from Bbs b 。那么呢,这样子之后,我们就能这样根据变量名取值了:test2.abc 。其实原理都是一样的,hql与jdbc的区别就是,jdbc的最后的list 里面,自动封装的 是一个Map;而hql查出的最后的结果集,

21、却是根据逗号分隔,每个都封装成了一个单独的对象,如果想像 jdbc 一样,只想扔一个最终的Map在list 中,那么,就需要 newMap()。7、关于actionform的有效期问题,默认应该是浏览器的,这种情况下,你即使切换了jsp页面等等,form 中内容是不会改变的,想要每次使用form 的时候都能是新的数据,需要在 struts.xml 中在 action 标签中注明 scope= request ”8、接第七条,在 struts.xml 中,forward标签中有个属性是 redirect ,如果要跳转的页面是个frameset ,那么这个属性就必须设置成ture 。9、相对路径和

22、决定路径的这点事,真他们的烦人啊。10、 写action的时候,action= /*do*前面有没有/是很有区别的,没有的话,直接在本层寻找,有的话,需要跳到上一层去找11、 关键字不能乱用,比如页面中不要给任何东西起名为关键字,如果给一个button 起了 id为submit ,那么很可能就出问题了。12、 “base target=_self /。在head标签中加上此语句后,submit之后将不会弹出新窗口13、 Hql中,这样的语句是可以正常运行的:from ERooms where build_id in(select e.buildId from EBuilds e where L

23、P_id =+ id +) 也还是说明了一件事情就是:sql的大多薮语法都是可以正常在hql中运用的,不一样的只不过是from后面的是表名还是对象名,取出的结果集是默认封装成map还是object14、 、 突然发现 createSQLQuery 有这样一个方法可以直接转换对象Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class);XXXXXXX 代表以 hibernate 生成的 Bean 的对象,也就是数据表映射出的 Bean 。动态增加一行:要用document.createElement();下面的例子是在某

24、表创建一行的js代码:table1 );tr );td );, RptTableBodyCellLock);var oTable=document.getElementById( var oTr1 = document.createElement ( for ( var i=0;i10;i+)td = document.createElement( if (i=0)td.setAttribute (className / / 添加一个 text 文本框var textobj1 = document.createElement (input );textobj1.setAttribute(typ

25、e , text );td.appendChild(textobj1);oTr1.appendChild(td);oTable.firstChild.appendChild(oTr1);还有一种方法就是: var oTable=document.getElementById(tb );var oTr1 = oTable.insertRow(oTable.rows.length);for ( var i=0;i7;i+)i f (i=0)td = oTr1.insertCell(i);td.nowrap= nowrap ;td.align= center ;td.innerHTML = ;els

26、et d = oTr1.insertCell(i);t d.width= 15% ;t d.nowrap= nowrap ;t d.align= center ;t d.innerHTML = ;15、 、oTable.rows.length可以取到 table 的行数16、 、关于数据库表的设计和使用,有这么几个需要注意的地方:主键在什么时候使用?是永远不用还是所有关联的时候都用?17、 、 关于 spring 配置的事务问题。事务有时候不起作用了,为什么呢?原因很多,最常见的有: 1 )所有的异常都被catch 了,这时候 spring 就不管了; 2 )没有配置代理。基本这两种情况最常见

27、,昨天遇到的就是第一种情况,需要使用事务的方法必须要抛出一个runtimeException ,也就是说 catch 里面不能包含 runtimeException ,这样情况下spring 才会处理你的事务。18、 在sql查询两个表关联时候,通过一个字段来关联两个表的数据,比如:select *from table1,table2 where table1.id = table2.pid,且每个表中有两条数据。这时候有以下几种情况:1)如果tablel 的id和table2 的id没有任何重合, 那么,查询结果为空。值得一提的是这种情况下如果把 where去掉,那么会查出来四条记录。2)当

28、tablel中有一个 id 等于 table2 中的两个 id 的时候,那么是两条记录,类似的情况还有2V1,1V1 。3)如果两个表中的id和pid都是同样的值的时候,记录的条数就跟情况1下的没有where一样了。应该是有些乱,因为都是几个阶段的不同记录,也懒的整理了项目过程的常见问题可能会与上面有重复The markup in the document following the root element mustbe well-formed 问题解决The markup in the document following the root element must be well-for

29、med ,这个错误是在配置webservice 时候, web.xml 中报的错,错误原因大概是文档中标记的地方格式不合法, 我稍微一检查, 原来是 标签放到 外面了,这当然不行了,放进去, okCannot load JDBC driver classcom.microsoftsqlserver.jdbc.SQLServerDrive 司 题解决很简单, 缺少驱动包sqljdbc.jar 。 这个包必须扔到 tomcat6 的 lib 下面去, 然后 okError creating bean with name dataSource defined in file把下面的三个包加上, ok

30、 了:commons-collections.jarcommons-dbcp.jar commons-pool.jarNo configuration found. Configuring ehcache fromehcache-failsafe.xmlNoconfiguration found. Configuring ehcache from ehcache-failsafe.xml 。 ehcache-failsafe.xml 是来自于 ehcache-1.1.jar 包,但原因并不是找不到ehcache-failsafe.xml 而 造 成 的 错 误 , 把 ehcache-1.1.

31、jar 包 里 的 ehcache-failsafe.xml 抽取出来, 改名为 ehcache.xml 放到工程的 Src 目录下, 刷新一下并运行,OK没有警告了!一般伴随这个的,还有下面两个警告:Couldnotfindconfigurationorg.hibernate.cache.UpdateTimestampsCache; using defaults.Could not find configuration org.hibernate.cache.StandardQueryCache; using defaults.原因就是你配置了 spring 二级缓存不完全造成的参见下面的文

32、章:1. 首 先 , 在 spring 的 hibernate 配 置 里 ( 我 的 是 applicationContext-hibernate.xml) 加上如下属性:org/appfteaching/model/TArticleclass.hbm.xml$hibernate.dialect$hibernate.show_sql$hibernate.jdbc.fetch_size$hibernate.jdbc.batch_sizetrueorg.hibernate.cache.EhCacheProvi der2. 其次,在src目录下的ehcache.xml中配置如下信息(如果是默认ehcache.xml 贝 会有 不 0,去掉)3. 将你要缓存的 model 加进 ehcache.xml 里

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1