今天在工作的时候,突然发现我的一个很久没有动过的工程,启动之后,页面访问action居然一直在主页,后来检查了下,action没有进入相关的方法,也没有报错,很奇怪。。
仔细想了下,前几天我升级了struts到2.3.15.3,然后没有启动项目检查是否完好。而上一次升级是在2.3.15.1。
send!input.action类似这种动态调用都在支持了,后来看了下发现原来是2.3.15.2开始不再支持动态调用了,,在struts.xml中配置了 <constant name="struts.enable.DynamicMethodInvocation" value="true"/> 就ok。
再次告诫自己,遇到问题的时候要有耐心,不要害怕,其次就是找准切入点,一点一点解决问题。
今天解决问题的时候有点憨,,, 这是动态调用不是通配符。。。
public static String convertInputStreamToString(InputStream is) { StringBuilder result = new StringBuilder(); if (is != null) try { InputStreamReader inputReader = new InputStreamReader(is); BufferedReader bufReader = new BufferedReader(inputReader); String line = ""; while ((line = bufReader.readLine()) != null) result.append(line); bufReader.close(); inputReader.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result.toString(); }
public static boolean isEmpty(String string) { return string == null || string.length() == 0; }
public static boolean isNumeric(String strNumeric) { if (isEmpty(strNumeric)) return false; String patternStr = "^[-+]?\\d+(\\.\\d+)?$"; if (Pattern.matches(patternStr, strNumeric)) return true; else return false; }
public static float getDistance(double lat1, double lon1, double lat2, double lon2) { int EARTH_RADIUS_KM = 6371; // if there's unavailable location (0,0), return 0 if (lat1 == 0 || lon1 == 0 || lat2 == 0 || lon2 == 0) return 0; double lat1Rad = Math.toRadians(lat1); double lat2Rad = Math.toRadians(lat2); double deltaLonRad = Math.toRadians(lon2 - lon1); double km = Math.acos(Math.sin(lat1Rad) * Math.sin(lat2Rad) + Math.cos(lat1Rad) * Math.cos(lat2Rad) * Math.cos(deltaLonRad)) * EARTH_RADIUS_KM; return km; }
作为第一篇博客,先给一些资料可以帮助初学者开始学习ADF和Jdeveloper11g
1.首先毫无疑问,你要懂java语言, 可以看看Thinking In Java, 或者原来sun的网上的一些文档 Sun‘s Online Docs.
2. 在学习语言的过程中,可以使用jdeveloper作为开发的工具,可以熟悉一下编码/Debug/Syntax的环境。jdev也提供了丰富的代码模板,自动补全以及重构的功能。具体可以参考IDE教程。
3.接下去,可以开始ADF的学习。可以先看一下 Getting Started Guides。看一下该框架的白皮书,知道这个框架可以做些什么,也可以在那里找到一些demo。
4.然后做一个step by step的教程,文档链接。通过这个教程你可以了解ADF学习的过程,有个初次的印象。如果仔细阅读每一步的说明,在做这个练习的同时也会了解很多的开发细节。 除此之外,还有两个深入学习的教程,ADF Focused Tutorial , ADF Task Flow。
还有很多其他的教程可以在这里找到:链接 OTN
相关的书籍,培训: 链接
5. 接下去会有一些痛苦,如果你已经完成了所有的培训,不管你是自学还是参加ORACLE的课程。请阅读一下完成的开发手册。 开发手册会给你更加深入的ADF相关的知识。有基本oracle 官方的书可以参考以下:Quick Start Guide to Oracle Fusion Development ,Oracle JDeveloper 11g Handbook,Oracle Fusion Developer Guide。当然这些书都是收费的,在国内网上可能能找到免费的 :)
6. 如果走到了第六步,说明你已经有了比较完整的基础。但是,当你真正开始用ADF和JDEV做开发时,你会有很多问题,这些问题是以上一些教程和书籍没有告诉你怎么解决的。这个时候你就需要JDeveloper and ADF discussion forum。 或者到我们的 OFMCLUB来寻求答案。 当然在google上也能搜到很多ADF有用的信息,比如一些BLOG searchable ADF/JDeveloper blog repository.
ADF Code Corner提供了很多的问题。
7. 在goolge上有一些专家,建立个讨论组 Oracle ADF Enterprise Methodology Group。 主要讨论一些高级的议题,和最佳实践。