??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩激情一区二区三区,最新亚洲视频,亚洲国产精品综合小说图片区http://www.aygfsteel.com/onlykeke/category/10257.htmlU尘最可笑Q我自乐逍遥zh-cnFri, 02 Mar 2007 03:31:35 GMTFri, 02 Mar 2007 03:31:35 GMT60比较器Comparator[转]http://www.aygfsteel.com/onlykeke/articles/48572.html奇葛?/dc:creator>奇葛?/author>Sun, 28 May 2006 04:15:00 GMThttp://www.aygfsteel.com/onlykeke/articles/48572.htmlhttp://www.aygfsteel.com/onlykeke/comments/48572.htmlhttp://www.aygfsteel.com/onlykeke/articles/48572.html#Feedback0http://www.aygfsteel.com/onlykeke/comments/commentRss/48572.htmlhttp://www.aygfsteel.com/onlykeke/services/trackbacks/48572.html 比较器Comparator

排序的算法是我们最常用的算法,初学E序Q每个h都尝试过排序。但只是局限于单的排序?br />如将下列数字q行排序
1Q?Q?Q?Q?Q?
于是我们得出l果
1Q?Q?Q?Q?Q?
下列字母(字符Q进行排?br />a,i,e,f,w,s
于是我们得出l果
a,e,f,i,s,w
但是我们遇到的情况就不是如此单了。如l公叔R的商品进行排序,我们很轻易的惛_按照商品的名U排序不完了,而且单明了。但现实q如我们怿般简单。同一商品名称可以有不同的ҎQ进货时_可能q会有单L不同。显然只Ҏ商品名称排序是不合理的?br />
再D个简单例子然后用E序实现。如公司要将员工q行排序Q不要说领导排在前面Q,假设我们的需求比较复杂。先q行姓排序,谁的姓拼音靠前,谁就排前面。然后对名字q行排序。恩.如果同名Q女性排前头。如果名字和性别都相同,q龄的排前头。okQ一个也不算复杂的需求?br />
如果对java比较熟悉的会知道java.util.Comparator 接口。要实现里面的函?br /> int compare(Object o1, Object o2) q回一个基本类型的整型Q返回负数表Co1 于o2Q返? 表示o1和o2相等Q返回正数表Co1大于o2?br />
于是我们设计的h员类要有几个变量Qfirstname,lastname,sex,age分别表示姓,名,性别Q年龄?br />

public class Person {
  String firstname,lastname;
  Boolean sex;
  Integer age;
  public Person(String firstname,String lastname,Boolean sex,Integer age) {
    this.firstname = firstname;
    this.lastname = lastname;
    this.sex = sex;
    this.age = age;
  }
  public String getFirstName() {
     return firstname;
   }

   public String getLastName() {
     return lastname;
   }
   public Boolean getSex() {
      return sex;
    }

    public Integer getAge() {
      return age;
    }

//Z输入方便Q重写了toString()

public String toString()
    {
      return firstname +" "+lastname+" "+(sex.booleanValue()?"?:"?)+" "+age;
    }
}
//end person

下面是要实现比较?br />

public class Comparators {
  public static java.util.Comparator getComparator() {
    return new java.util.Comparator() {

      public int compare(Object o1, Object o2) {
        if (o1 instanceof String) {
          return compare( (String) o1, (String) o2);
        }
       else if (o1 instanceof Integer) {
          return compare( (Integer) o1, (Integer) o2);
        }

       else if (o1 instanceof Person) {
      return compare( (Person) o1, (Person) o2);
    }

        else {
          System.err.println("未找到合适的比较?);
          return 1;

        }
      }

      public int compare(String o1, String o2) {
        String s1 = (String) o1;
        String s2 = (String) o2;
        int len1 = s1.length();
        int len2 = s2.length();
        int n = Math.min(len1, len2);
        char v1[] = s1.toCharArray();
        char v2[] = s2.toCharArray();
        int pos = 0;

        while (n-- != 0) {
          char c1 = v1[pos];
          char c2 = v2[pos];
          if (c1 != c2) {
            return c1 - c2;
          }
          pos++;
        }
        return len1 - len2;
      }

      public int compare(Integer o1, Integer o2) {
        int val1 = o1.intValue();
        int val2 = o2.intValue();
        return (val1 < val2 ? -1 : (val1 == val2 ? 0 : 1));

      }
      public int compare(Boolean o1, Boolean o2) {

         return (o1.equals(o2)? 0 : (o1.booleanValue()==true?1:-1));

       }

      public int compare(Person o1, Person o2) {
        String firstname1 = o1.getFirstName();
        String firstname2 = o2.getFirstName();
        String lastname1 = o1.getLastName();
        String lastname2 = o2.getLastName();
        Boolean sex1 = o1.getSex();
        Boolean sex2 = o2.getSex();
        Integer age1 = o1.getAge();
        Integer age2 = o2.getAge();
        return (compare(firstname1, firstname2) == 0 ?
                (compare(lastname1, lastname2) == 0 ? (compare(sex1, sex2) == 0 ? (compare(age1, age2) == 0 ? 0 :
                 compare(age1, age2)) :
                 compare(sex1, sex2)) :
                 compare(lastname1, lastname2)) :
                compare(firstname1, firstname2));

      }

    };
  }

}
以上代码有可能因为浏览器的布局自动换行?br />compare(Person o1, Person o2)的返回值看h比较别扭。最单的?br />
    public int compare(Boolean o1, Boolean o2) {

         return (o1.equals(o2)? 0 : (o1.booleanValue()==true?1:-1));

       }

o1和o2相等q回0Q否则o1如果是true pCo1大于o2?br />
再尝试输出结果看?br />

public class Main {
  public Main() {
  }
  public static void main(String[] args) {
    Person[] person = new Person[] {
         new Person("ouyang", "feng", Boolean.TRUE, new Integer(27)),
         new Person("zhuang", "gw", Boolean.TRUE, new Integer(27)),
         new Person("zhuang", "gw", Boolean.FALSE, new Integer(27)),
         new text.Person("zhuang", "gw", Boolean.FALSE, new Integer(2)),


     };
     for (int i = 0; i < person.length; i++) {
       System.out.println("before sort=" + person[i]);
     }
     java.util.Arrays.sort(person, Comparators.getComparator());
  for (int i = 0; i < person.length; i++) {
    System.out.println("after sort=" + person[i]);
  }


  }

}

输出l果Q?br />
before sort=ouyang feng ?27

before sort=zhuang gw ?27

before sort=zhuang gw ?27

before sort=zhuang gw ?2

after sort=ouyang feng ?27

after sort=zhuang gw ?2

after sort=zhuang gw ?27

after sort=zhuang gw ?27


仔细理解java的Comparator会给你写排序带来很大帮助




]]>
Google Web Toolkit http://www.aygfsteel.com/onlykeke/articles/46740.html奇葛?/dc:creator>奇葛?/author>Thu, 18 May 2006 01:34:00 GMThttp://www.aygfsteel.com/onlykeke/articles/46740.htmlhttp://www.aygfsteel.com/onlykeke/comments/46740.htmlhttp://www.aygfsteel.com/onlykeke/articles/46740.html#Feedback0http://www.aygfsteel.com/onlykeke/comments/commentRss/46740.htmlhttp://www.aygfsteel.com/onlykeke/services/trackbacks/46740.htmlGoogle Web Toolkit

  - Build AJAX apps in the Java language

Google Web Toolkit (GWT) is a Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don't speak browser quirks as a second language. Writing dynamic web applications today is a tedious and error-prone process; you spend 90% of your time working around subtle incompatabilities between web browsers and platforms, and JavaScript's lack of modularity makes sharing, testing, and reusing AJAX components difficult and fragile.

GWT lets you avoid many of these headaches while offering your users the same dynamic, standards-compliant experience. You write your front end in the Java programming language, and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML.

Learn more

GWT的特?

  • Create a Widget by compositing other Widgets. Lay out Widgets automatically in Panels. Send your Widget to other developers in a JAR file.
  • To communicate from your web application to your web server, you just need to define serializable Java classes for your request and response. In production, GWT automatically serializes the request and deserializes the response from the server. GWT's RPC mechanism can even handle polymorphic class hierarchies, and you can throw exceptions across the wire.
  • No, AJAX applications don't need to break the browser's back button. GWT lets you make your site more usable by easily adding state to the browser's back button history.
  • In production, your code is compiled to JavaScript, but at development time it runs in the Java virtual machine. That means when your code performs an action like handling a mouse event, you get full-featured Java debugging, with exceptions and the advanced debugging features of IDEs like Eclipse.
  • Your GWT applications automatically support IE, Firefox, Mozilla, Safari, and Opera with no browser detection or special-casing within your code in most cases.
  • If GWT's class library doesn't meet your needs, you can mix handwritten JavaScript in your Java source code using our JavaScript Native Interface (JSNI).

and there is a feedback that  it's not better than dojo.



]]>
用Java接口实现回调函数的等价功?/title><link>http://www.aygfsteel.com/onlykeke/articles/46023.html</link><dc:creator>奇葛?/dc:creator><author>奇葛?/author><pubDate>Sat, 13 May 2006 14:58:00 GMT</pubDate><guid>http://www.aygfsteel.com/onlykeke/articles/46023.html</guid><wfw:comment>http://www.aygfsteel.com/onlykeke/comments/46023.html</wfw:comment><comments>http://www.aygfsteel.com/onlykeke/articles/46023.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/onlykeke/comments/commentRss/46023.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/onlykeke/services/trackbacks/46023.html</trackback:ping><description><![CDATA[ <p>?Java 接口实现回调函数的等价功?/p> <p>引自Q?a >http://www-900.ibm.com/developerWorks/cn/java/jw-tips/tip010/</a></p> <p>作者:John D. Mitchell <br />摘要<br />?Java 支持Ҏ指针之前QJava 接口不能提供一U实现回调的好方法。如果您习惯于传递在事g驱动~程模型中调用的函数指针Q则您会喜欢本技巧?br />熟悉 MS-Windows ?X Window System 事g驱动~程模型的开发h员,习惯于传递在某种事g发生时调用(即“回调”)的函数指针。Java 的面向对象模型目前ƈ不支持方法指针,q样g׃可能使用q种很好的机制。但我们q不是一点办法都没有Q?</p> <p>Java 的接口支持提供了一U获得回调的{h功能的机制。其技巧就是:定义一个简单接口,q在该接口中声明我们要调用的Ҏ?/p> <p>例如Q假定我们希望在某个事g发生时得到通知。我们可以定义一个接口:</p> <p>public interface InterestingEvent{<br />// q仅是一个常规方法。因此如果需要,<br />// 它可有返回|也可接收参数?br />public void interestingEvent ();<br />}</p> <p> <br />q得我们可以控制实现该接口的类的Q何对象。因此,我们不必兛_M外部cd信息。与在将 C++ 代码用于 Motif 时用窗口小部g的数据域来容U_象指针的难以控制?C 函数相比Q这U方法要好得多?/p> <p>发出事g信号的类必须{待实现?InterestingEvent 接口的对象,q在适当时候调?interestingEvent() Ҏ?/p> <p>public class EventNotifier{<br />private InterestingEvent ie;<br />private boolean somethingHappened;</p> <p>public EventNotifier (InterestingEvent event){<br />// 保存事g对象以备后用?br />ie = event;</p> <p>// q没有要报告的事件?br />somethingHappened = false;<br />}</p> <p>//...</p> <p>public void doWork (){<br />// 查在别处讄的谓词?br />if (somethingHappened){<br />// 通过调用接口的这个方法发Z件信受?br />ie.interestingEvent ();<br />}<br />//...<br />}</p> <p>// ...<br />}</p> <p> <br />在上例中Q我使用 somethingHappened 谓词来跟t是否应触发事g。在许多情况下,调用此方法以保证向 interestingEvent() 发出信号?/p> <p>希望接收事g通知的代码必d?InterestingEvent 接口Qƈ自w引用传递给事g通知E序?/p> <p>public class CallMe implements InterestingEvent{<br />private EventNotifier en;</p> <p>public CallMe (){<br />// 创徏事g通知E序Qƈ自w引用传递给它?br />en = new EventNotifier (this);<br />}</p> <p>// Z件定义实际的处理E序?br />public void interestingEvent (){<br />// 噢!必定发生了感兴趣的事Ӟ<br />// 执行某些操作 ...<br />}</p> <p>//...<br />}</p> <p> <br />q就是所要做的全部工作。我希望q个单的 Java 习惯用法会您更有信心地转向 Java?/p> <p>JavaWorld q有一个名?Java Questions & Answers 特色专栏Q现在就有?Java 语言的问题发送到 <a href="mailto:javaqa@javaworld.com">javaqa@javaworld.com</a>?我们也希望将您的 Java 技巧刊d以后?Java world 上。赶快将您最的技巧和H门写出?-- 参加 JavaWorld ?"Java Tip of the Week" 竞赛?如果您的 Java 技巧成?JavaWorld "Java Tip of the Week"Q您获?JavaWorld 奖励的一?T 恤,以及一周的荣誉和声望。请您?Java 技巧和H门发送到 <a href="mailto:javatips@javaworld.com">javatips@javaworld.com</a>?/p> <p>作者简?br />John D. Mitchell 在过Mq的大部分时间里一直在 Geoworks 从事N工作Qƈ用面向对象的汇编语言开发了 PDA 软g。他睡眠很少Q靠咖啡因和p维持着。他通过~写~译器、Tcl/Tk?C++ ?Java pȝ支助着自己?Java 嗜好。John D. Mitchell q参与编写了一本畅销?Java 著作QMaking Sense of JavaQ目前正在开发一U?Java ~译器?/p> <img src ="http://www.aygfsteel.com/onlykeke/aggbug/46023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/onlykeke/" target="_blank">奇葛?/a> 2006-05-13 22:58 <a href="http://www.aygfsteel.com/onlykeke/articles/46023.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>use LoadableDetachableModel directly in webpagehttp://www.aygfsteel.com/onlykeke/articles/44724.html奇葛?/dc:creator>奇葛?/author>Sat, 06 May 2006 04:08:00 GMThttp://www.aygfsteel.com/onlykeke/articles/44724.htmlhttp://www.aygfsteel.com/onlykeke/comments/44724.htmlhttp://www.aygfsteel.com/onlykeke/articles/44724.html#Feedback0http://www.aygfsteel.com/onlykeke/comments/commentRss/44724.htmlhttp://www.aygfsteel.com/onlykeke/services/trackbacks/44724.html
class MyPage extends WebPage {

private String criteria;
//getter/setter for criteria

public MyPage() {
  IModel listModel=new LoadableDetachableModel() {
          Object load() {
              UserService service=...get user service;
               List users=service.findUsersFiltered(criteria);
              return users;
          }
  }
  add(new ListView("users", listModel) {....});

  // so here we have the listview that will show a list that is filtered on page's criteria property. now we hookup our dropdownchoice in such a way that it modifies this property and when the page refreshes so will the listview because it is using a detachble model.

Form form=new Form();
add(form);

List filters=new ArrayList();
filters.add("a");
filters.add("b");

form.add(new DropDownChoice("filter", new PropertyModel(this, "criteria"), filters) {
wantOnChangeNotifiaction() { return true; });
// here we glue dropdown choice to our criteria property via the property model
}}

and thats it. to overview what we have done:

the listview "pulls" its filter from the criteria property on the page and uses a detachable model so that it refreshes on every request

dropdown choice puts its selection into the criteria property

so the listview is glued to the dropdown choice by sharing a property

]]>
111个知名Java目集锦Q{Q?/title><link>http://www.aygfsteel.com/onlykeke/articles/42022.html</link><dc:creator>奇葛?/dc:creator><author>奇葛?/author><pubDate>Wed, 19 Apr 2006 15:23:00 GMT</pubDate><guid>http://www.aygfsteel.com/onlykeke/articles/42022.html</guid><wfw:comment>http://www.aygfsteel.com/onlykeke/comments/42022.html</wfw:comment><comments>http://www.aygfsteel.com/onlykeke/articles/42022.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/onlykeke/comments/commentRss/42022.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/onlykeke/services/trackbacks/42022.html</trackback:ping><description><![CDATA[ <div id="wmqeeuq" class="posttitle"> <a class="singleposttitle" id="viewpost1_TitleUrl" href="/Andyluo/archive/2006/04/15/javaprojects.html">111个知名Java目集锦Q包括url和描qͼ</a> </div> <strong> </strong> <br /> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <th>目名称</th> <th colspan="3" rowspan="112"> </th> <th>目描述<font color="#ffffff">转蝲?/font><a ><font color="#ffffff">http://andyluo.blogjava.net</font></a></th> </tr> <tr> <td> <a title="Homepage for ASM" target="_blank">ASM</a> </td> <td style="FONT-SIZE: 75%">Java bytecode manipulation framework</td> </tr> <tr> <td> <a title="Homepage for AspectWerkz" target="_blank">AspectWerkz</a> </td> <td style="FONT-SIZE: 75%">AspectWerkz - Dynamic AOP for Java</td> </tr> <tr> <td> <a title="Homepage for Axis" target="_blank">Axis</a> </td> <td style="FONT-SIZE: 75%">Axis - an implementation of the SOAP (Simple Object Access Protocol) submission to W3C</td> </tr> <tr> <td> <a title="Homepage for Batik" target="_blank">Batik</a> </td> <td style="FONT-SIZE: 75%">Batik SVG Toolkit - Toolkit using images in the Scalable Vector Graphics (SVG) format</td> </tr> <tr> <td> <a title="Homepage for BCEL" target="_blank">BCEL</a> </td> <td style="FONT-SIZE: 75%">Byte Code Engineering Library - Analyze, create and manipulate Java class files</td> </tr> <tr> <td> <a title="Homepage for BeanUtils" target="_blank">BeanUtils</a> </td> <td style="FONT-SIZE: 75%">BeanUtils - Utilities for working with JavaBeans</td> </tr> <tr> <td> <a title="Homepage for Catalina" target="_blank">Catalina</a> </td> <td style="FONT-SIZE: 75%">Catalina - Servlet and JSP based web server</td> </tr> <tr> <td> <a title="Homepage for Cayenne" target="_blank">Cayenne</a> </td> <td style="FONT-SIZE: 75%">Professional Object Relational Mapping</td> </tr> <tr> <td> <a title="Homepage for CGLIB" target="_blank">CGLIB</a> </td> <td style="FONT-SIZE: 75%">CGLIB - Dynamic byte code generator<font color="#ffffff">转蝲?/font><a ><font color="#ffffff">http://andyluo.blogjava.net</font></a></td> </tr> <tr> <td> <a title="Homepage for Chain" target="_blank">Chain</a> </td> <td style="FONT-SIZE: 75%">Chain - Implementation of the GoF "Chain of Responsibility" pattern</td> </tr> <tr> <td> <a title="Homepage for Checkstyle" target="_blank">Checkstyle</a> </td> <td style="FONT-SIZE: 75%">Checkstyle - Development tool to help writing Java code that adheres to a coding standard</td> </tr> <tr> <td> <a title="Homepage for CLI" target="_blank">CLI</a> </td> <td style="FONT-SIZE: 75%">Command Line Library - Simple API for working with the command line arguments and options</td> </tr> <tr> <td> <a title="Homepage for Codec" target="_blank">Codec</a> </td> <td style="FONT-SIZE: 75%">Commons Codec - Encoders and decoders like Base64, Hex, phonetic encodings and URLs</td> </tr> <tr> <td> <a title="Homepage for Collections" target="_blank">Collections</a> </td> <td style="FONT-SIZE: 75%">Collections - Filling the holes left in Sun's Collections API</td> </tr> <tr> <td> <a title="Homepage for Configuration" target="_blank">Configuration</a> </td> <td style="FONT-SIZE: 75%">Commons Configuration - Generic API enabling configuration from a variety of sources</td> </tr> <tr> <td> <a title="Homepage for DBCP" target="_blank">DBCP</a> </td> <td style="FONT-SIZE: 75%">DBCP - Connection pooling implementations</td> </tr> <tr> <td> <a title="Homepage for DBUtils" target="_blank">DBUtils</a> </td> <td style="FONT-SIZE: 75%">DbUtils - Set of classes designed to make working with JDBC easier</td> </tr> <tr> <td> <a title="Homepage for Digester" target="_blank">Digester</a> </td> <td style="FONT-SIZE: 75%">Struts Digester - Configure an XML/Java mapping with actions when patterns are recognized</td> </tr> <tr> <td> <a title="Homepage for Discovery" target="_blank">Discovery</a> </td> <td style="FONT-SIZE: 75%">Discovery - Discovering, or finding, implementations for pluggable interfaces</td> </tr> <tr> <td> <a title="Homepage for DNSJava" target="_blank">DNSJava</a> </td> <td style="FONT-SIZE: 75%">DNS in Java - Supporting common record types, queries, zone transfers and dynamic updates</td> </tr> <tr> <td> <a title="Homepage for doclet" target="_blank">doclet</a> </td> <td style="FONT-SIZE: 75%">JavaDoc Doclet - Custom output from the types methods and fields in a source tree.</td> </tr> <tr> <td> <a title="Homepage for Dom4j" target="_blank">Dom4j</a> </td> <td style="FONT-SIZE: 75%">DOM4J - XML, XPath and XSLT library</td> </tr> <tr> <td> <a title="Homepage for DTDParser" target="_blank">DTDParser</a> </td> <td style="FONT-SIZE: 75%">DTDParse DTD Library - You can use this library to parse a DTD</td> </tr> <tr> <td> <a title="Homepage for EL" target="_blank">EL</a> </td> <td style="FONT-SIZE: 75%">EL - The JSP 2.0 Expression Language Interpreter from Apache</td> </tr> <tr> <td> <a title="Homepage for fastutil" target="_blank">fastutil</a> </td> <td style="FONT-SIZE: 75%">FastUtil - Type-specific maps sets and lists with a small memory footprint and fast access</td> </tr> <tr> <td> <a title="Homepage for FileUpload" target="_blank">FileUpload</a> </td> <td style="FONT-SIZE: 75%">HTTP File Upload Library - Add robust, fast file upload capability to your web applications</td> </tr> <tr> <td> <a title="Homepage for FreeMarker" target="_blank">FreeMarker</a> </td> <td style="FONT-SIZE: 75%">HTML Template Engine<a ><font color="#ffffff">http://andyluo.blogjava.net</font></a></td> </tr> <tr> <td> <a title="Homepage for GJT" target="_blank">GJT</a> </td> <td style="FONT-SIZE: 75%">Giant Java Tree - Java library consisting entirely of open source components</td> </tr> <tr> <td> <a title="Homepage for gnu-regex" target="_blank">gnu-regex</a> </td> <td style="FONT-SIZE: 75%">GNU Regular Expressions - Implementation of a traditional (non-POSIX) NFA regex engine</td> </tr> <tr> <td> <a title="Homepage for Groovy" target="_blank">Groovy</a> </td> <td style="FONT-SIZE: 75%">Groovy - Scripting Language</td> </tr> <tr> <td> <a title="Homepage for GlassFish" target="_blank">GlassFish</a> </td> <td style="FONT-SIZE: 75%">an oo app server implements JavaEE 5</td> </tr> <tr> <td> <a title="Homepage for Hibernate" target="_blank">Hibernate</a> </td> <td style="FONT-SIZE: 75%">Hibernate - Relational Persistence For Idiomatic Java</td> </tr> <tr> <td> <a title="Homepage for HiveMind" target="_blank">HiveMind</a> </td> <td style="FONT-SIZE: 75%">HiveMind - A services and configuration microkernel</td> </tr> <tr> <td> <a title="Homepage for HSQLDB" target="_blank">HSQLDB</a> </td> <td style="FONT-SIZE: 75%">HSQLDB - The Java SQL relational database</td> </tr> <tr> <td> <a title="Homepage for HTMLParser" target="_blank">HTMLParser</a> </td> <td style="FONT-SIZE: 75%">HTML Parser - Java library used to parse HTML</td> </tr> <tr> <td> <a title="Homepage for HTTPClient" target="_blank">HTTPClient</a> </td> <td style="FONT-SIZE: 75%">HTTP Client - Fills holes left by the java.net package, including most recent HTTP standards</td> </tr> <tr> <td> <a title="Homepage for Informa" target="_blank">Informa</a> </td> <td style="FONT-SIZE: 75%">Informa - News aggregation library --- LGPL协议</td> </tr> <tr> <td> <a title="Homepage for IO" target="_blank">IO</a> </td> <td style="FONT-SIZE: 75%">Commons-IO - Utility classes, stream implementations, file filters and endian classes for IO</td> </tr> <tr> <td> <a title="Homepage for iText" target="_blank">iText</a> </td> <td style="FONT-SIZE: 75%">iText - Generates PDF on the fly</td> </tr> <tr> <td> <a title="Homepage for J2EE" target="_blank">J2EE</a> </td> <td style="FONT-SIZE: 75%">Java 2 Platform, Enterprise Edition</td> </tr> <tr> <td> <a title="Homepage for J2SE" target="_blank">J2SE</a> </td> <td style="FONT-SIZE: 75%">Java2 Standard Edition v5<a class="" title="" href="/Andyluo/archive/2006/04/15/javaprojects.html" target=""><font color="#ffffff">http://www.aygfsteel.com/Andyluo/archive/2006/04/15/javaprojects.html</font></a></td> </tr> <tr> <td> <a title="Homepage for JAI" target="_blank">JAI</a> </td> <td style="FONT-SIZE: 75%">Java Advanced Imaging - Network-enabled, scalable, platform-independent image processing</td> </tr> <tr> <td> <a title="Homepage for Jalopy" target="_blank">Jalopy</a> </td> <td style="FONT-SIZE: 75%">Jalopy Source Formatter - Formats Java source code according to widely configurable rules</td> </tr> <tr> <td> <a title="Homepage for Jasper" target="_blank">Jasper</a> </td> <td style="FONT-SIZE: 75%">Jasper - Tomcat JSP engine<a ><font color="#ffffff">http://andyluo.blogjava.net</font></a></td> </tr> <tr> <td> <a title="Homepage for JasperReports" target="_blank">JasperReports</a> </td> <td style="FONT-SIZE: 75%">JasperReports - Free Java reporting library</td> </tr> <tr> <td> <a title="Homepage for Java3d" target="_blank">Java3d</a> </td> <td style="FONT-SIZE: 75%">Java3D - Object-oriented interfaces that support a simple, high-level programming mode</td> </tr> <tr> <td> <a title="Homepage for JavaComm" target="_blank">JavaComm</a> </td> <td style="FONT-SIZE: 75%">Java Communications - API for technologies such as voice mail, fax and smartcards</td> </tr> <tr> <td> <a title="Homepage for JavaGroups" target="_blank">JavaGroups</a> </td> <td style="FONT-SIZE: 75%">JavaGroups - Reliable multicast communication enable processes to send messages to each other</td> </tr> <tr> <td> <a title="Homepage for Jaxen" target="_blank">Jaxen</a> </td> <td style="FONT-SIZE: 75%">Jaxen XPath Processor - Object model walker; evaluate XPath expressions in dom4j and JDOM</td> </tr> <tr> <td> <a title="Homepage for JAXME" target="_blank">JAXME</a> </td> <td style="FONT-SIZE: 75%">JaxMe 2 - Open source implementation of JAXB</td> </tr> <tr> <td> <a title="Homepage for JClassLib" target="_blank">JClassLib</a> </td> <td style="FONT-SIZE: 75%">JClassLib - Library for reading, modifing and writing Java class files and bytecode</td> </tr> <tr> <td> <a title="Homepage for JCommon" target="_blank">JCommon</a> </td> <td style="FONT-SIZE: 75%">JCommon - Collection of useful classes used by JFreeChart, JFreeReport and other projects</td> </tr> <tr> <td> <a title="Homepage for JCrontab" target="_blank">JCrontab</a> </td> <td style="FONT-SIZE: 75%">JCronTab - Scheduler written in Java, provide a fully functional schedules for Java projects</td> </tr> <tr> <td> <a title="Homepage for JDIC" target="_blank">JDIC</a> </td> <td style="FONT-SIZE: 75%">JDIC - JDesktop Integration Components</td> </tr> <tr> <td> <a title="Homepage for JDNC" target="_blank">JDNC</a> </td> <td style="FONT-SIZE: 75%">JDNC - JDesktop Network Components</td> </tr> <tr> <td> <a title="Homepage for JDO" target="_blank">JDO</a> </td> <td style="FONT-SIZE: 75%">Java Data Objects - Direct storage of Java domain model instances into a database</td> </tr> <tr> <td> <a title="Homepage for JDOM" target="_blank">JDOM</a> </td> <td style="FONT-SIZE: 75%">JDOM XML Library - For accessing, manipulating and outputting XML data from Java code.</td> </tr> <tr> <td> <a title="Homepage for JetSpeed" target="_blank">JetSpeed</a> </td> <td style="FONT-SIZE: 75%">JetSpeed - Java Portal Server<a class="" title="" href="/Andyluo/archive/2006/04/15/javaprojects.html" target=""><font color="#ffffff">http://www.aygfsteel.com/Andyluo/archive/2006/04/15/javaprojects.html</font></a></td> </tr> <tr> <td> <a title="Homepage for JEXL" target="_blank">JEXL</a> </td> <td style="FONT-SIZE: 75%">Java Expression Language - is an embedable expression language engine</td> </tr> <tr> <td> <a title="Homepage for JFreeChart" target="_blank">JFreeChart</a> </td> <td style="FONT-SIZE: 75%">JFreeChart - Free library for generating charts, including pie, bar, line and areas charts</td> </tr> <tr> <td> <a title="Homepage for JGroups" target="_blank">JGroups</a> </td> <td style="FONT-SIZE: 75%">JGroups - Multicast communication toolkit</td> </tr> <tr> <td> <a title="Homepage for JMeter" target="_blank">JMeter</a> </td> <td style="FONT-SIZE: 75%">JMeter - Load testing applcation</td> </tr> <tr> <td> <a title="Homepage for JMF" target="_blank">JMF</a> </td> <td style="FONT-SIZE: 75%">Java Media Framework - Library for audio, video and other time-based media</td> </tr> <tr> <td> <a title="Homepage for JMock" target="_blank">JMock</a> </td> <td style="FONT-SIZE: 75%">JMock - Testing library<a class="" title="" href="/Andyluo/archive/2006/04/15/javaprojects.html" target=""><font color="#ffffff">http://www.aygfsteel.com/Andyluo/archive/2006/04/15/javaprojects.html</font></a></td> </tr> <tr> <td> <a title="Homepage for JSF" target="_blank">JSF</a> </td> <td style="FONT-SIZE: 75%">JavaServer Faces - Web Framework</td> </tr> <tr> <td> <a title="Homepage for JSword" target="_blank">JSword</a> </td> <td style="FONT-SIZE: 75%">JSword - Bible software in Java, compatible with the Sword project for C/C++</td> </tr> <tr> <td> <a title="Homepage for JTidy" target="_blank">JTidy</a> </td> <td style="FONT-SIZE: 75%">JTidy - HTML syntax checker</td> </tr> <tr> <td> <a title="Homepage for JUnit" target="_blank">JUnit</a> </td> <td style="FONT-SIZE: 75%">JUnit - Regression testing framework used by the developer who implements unit tests in Java</td> </tr> <tr> <td> <a title="Homepage for JXPath" target="_blank">JXPath</a> </td> <td style="FONT-SIZE: 75%">JXPath Library - Simple interpreter of an expression language called XPath</td> </tr> <tr> <td> <a title="Homepage for Lang" target="_blank">Lang</a> </td> <td style="FONT-SIZE: 75%">Lang - Utilities including Enums, String manipulation, reflection, serialization and more</td> </tr> <tr> <td> <a title="Homepage for Log4J" target="_blank">Log4J</a> </td> <td style="FONT-SIZE: 75%">Log4J - Fast logging API that lets you configure logging at runtime</td> </tr> <tr> <td> <a title="Homepage for Logging" target="_blank">Logging</a> </td> <td style="FONT-SIZE: 75%">Commons Logging - Simple wrapper API around multiple logging APIs</td> </tr> <tr> <td> <a title="Homepage for Lucene" target="_blank">Lucene</a> </td> <td style="FONT-SIZE: 75%">Lucene - high-performance, full-featured text search engine written entirely in Java</td> </tr> <tr> <td> <a title="Homepage for Math" target="_blank">Math</a> </td> <td style="FONT-SIZE: 75%">Math - Library of lightweight, self-contained mathematics and statistics components</td> </tr> <tr> <td> <a title="Homepage for Net" target="_blank">Net</a> </td> <td style="FONT-SIZE: 75%">Network Library - Support for Finger, Whois, TFTP, Telnet, FTP, NNTP, etc developed by ORO</td> </tr> <tr> <td> <a title="Homepage for OJB" target="_blank">OJB</a> </td> <td style="FONT-SIZE: 75%">OJB - O/R tool that allows transparent persistence</td> </tr> <tr> <td> <a title="Homepage for OpenJMS" target="_blank">OpenJMS</a> </td> <td style="FONT-SIZE: 75%">Open source JMS server</td> </tr> <tr> <td> <a title="Homepage for ORO" target="_blank">ORO</a> </td> <td style="FONT-SIZE: 75%">ORO - Text processing library</td> </tr> <tr> <td> <a title="Homepage for OSCache" target="_blank">OSCache</a> </td> <td style="FONT-SIZE: 75%">OSCache - A high performance J2EE caching framework</td> </tr> <tr> <td> <a title="Homepage for PJA" target="_blank">PJA</a> </td> <td style="FONT-SIZE: 75%">Pure Java AWT - Toolkit for drawing graphics without any native graphics resources</td> </tr> <tr> <td> <a title="Homepage for PMD" target="_blank">PMD</a> </td> <td style="FONT-SIZE: 75%">PMD - Scans Java source code for potential problems</td> </tr> <tr> <td> <a title="Homepage for POI" target="_blank">POI</a> </td> <td style="FONT-SIZE: 75%">POI - Java OLE 2 Manipulator</td> </tr> <tr> <td> <a title="Homepage for Pool" target="_blank">Pool</a> </td> <td style="FONT-SIZE: 75%">Commons Pooling - provides an generic, configurable Object-pooling API</td> </tr> <tr> <td> <a title="Homepage for Primitives" target="_blank">Primitives</a> </td> <td style="FONT-SIZE: 75%">Primitives - Collection of types and utilities optimized for working with Java primitives</td> </tr> <tr> <td> <a title="Homepage for Proxool" target="_blank">Proxool</a> </td> <td style="FONT-SIZE: 75%">Java connection pool</td> </tr> <tr> <td> <a title="Homepage for Quartz" target="_blank">Quartz</a> </td> <td style="FONT-SIZE: 75%">Quartz - J2EE open source job scheduler</td> </tr> <tr> <td> <a title="Homepage for Regexp" target="_blank">Regexp</a> </td> <td style="FONT-SIZE: 75%">Jakarta Regular Expressions - Java RegEx library under BSD style license</td> </tr> <tr> <td> <a title="Homepage for Rhino" target="_blank">Rhino</a> </td> <td style="FONT-SIZE: 75%">Mozilla JavaScript - open-source implementation of JavaScript written entirely in Java</td> </tr> <tr> <td> <a title="Homepage for Seraph" target="_blank">Seraph</a> </td> <td style="FONT-SIZE: 75%">Seraph - Atlassian Security Framework</td> </tr> <tr> <td> <a title="Homepage for SiteMesh" target="_blank">SiteMesh</a> </td> <td style="FONT-SIZE: 75%">A web-page layout and decoration framework</td> </tr> <tr> <td> <a title="Homepage for Slide" target="_blank">Slide</a> </td> <td style="FONT-SIZE: 75%">Slide - Content repository, can serve as a basis for CMS</td> </tr> <tr> <td> <a title="Homepage for SOAP" target="_blank">SOAP</a> </td> <td style="FONT-SIZE: 75%">Apache Soap - implementation of the SOAP submission to W3C</td> </tr> <tr> <td> <a title="Homepage for Speedo" target="_blank">Speedo</a> </td> <td style="FONT-SIZE: 75%">OSS JDO implementation<font color="#ffffff">转蝲?/font><a ><font color="#ffffff">http://andyluo.blogjava.net</font></a></td> </tr> <tr> <td> <a title="Homepage for Spring" target="_blank">Spring</a> </td> <td style="FONT-SIZE: 75%">Server Side alternative to J2EE APIs</td> </tr> <tr> <td> <a title="Homepage for Struts" target="_blank">Struts</a> </td> <td style="FONT-SIZE: 75%">Jakarta Struts - open source framework for building web applications</td> </tr> <tr> <td> <a title="Homepage for Tapestry" target="_blank">Tapestry</a> </td> <td style="FONT-SIZE: 75%">Tapestry - Web Framework</td> </tr> <tr> <td> <a title="Homepage for Turbine" target="_blank">Turbine</a> </td> <td style="FONT-SIZE: 75%">Turbine - Servlet based framework allowing developers to quickly build secure web applications</td> </tr> <tr> <td> <a title="Homepage for UDDI4J" target="_blank">UDDI4J</a> </td> <td style="FONT-SIZE: 75%">UDDI4J - Library that provides an API to interact with a UDDI registry</td> </tr> <tr> <td> <a title="Homepage for Validator" target="_blank">Validator</a> </td> <td style="FONT-SIZE: 75%">Validtator - Validate data from user input</td> </tr> <tr> <td> <a title="Homepage for Velocity" target="_blank">Velocity</a> </td> <td style="FONT-SIZE: 75%">Velocity - Support for clean, quick MVC web development and support for the Struts framework</td> </tr> <tr> <td> <a title="Homepage for Village" target="_blank">Village</a> </td> <td style="FONT-SIZE: 75%">Village - API that sits on top of the JDBC to make it easier to interact with a JDBC</td> </tr> <tr> <td> <a title="Homepage for WebWork 2" target="_blank">WebWork 2</a> </td> <td style="FONT-SIZE: 75%">Next generation of WebWork</td> </tr> <tr> <td> <a title="Homepage for Xalan" target="_blank">Xalan</a> </td> <td style="FONT-SIZE: 75%">Xalan - XSLT processor for transforming XML documents into HTML, text, or XML</td> </tr> <tr> <td> <a title="Homepage for XDoclet" target="_blank">XDoclet</a> </td> <td style="FONT-SIZE: 75%">XDoclet - Code generation engine</td> </tr> <tr> <td> <a title="Homepage for Xerces" target="_blank">Xerces</a> </td> <td style="FONT-SIZE: 75%">Xerces2 - The next generation of high performance, XML parsers in the Apache Xerces family</td> </tr> <tr> <td> <a title="Homepage for XMLBeans" target="_blank">XMLBeans</a> </td> <td style="FONT-SIZE: 75%">XMLBeans - XML-Java binding tool<font color="#ffffff">转蝲?/font><a ><font color="#ffffff">http://andyluo.blogjava.net</font></a></td> </tr> <tr> <td> <a title="Homepage for XMLPull" target="_blank">XMLPull</a> </td> <td style="FONT-SIZE: 75%">XMLPull - Defines a simple pull parsing API that does pull XML parsing from J2ME to J2EE</td> </tr> <tr> <td> <a title="Homepage for XMLRPC" target="_blank">XMLRPC</a> </td> <td style="FONT-SIZE: 75%">XML-RPC - Implementation of XML-RPC, using XML over HTTP to implement remote procedure calls</td> </tr> <tr> <td> <a title="Homepage for XNI" target="_blank">XNI</a> </td> <td style="FONT-SIZE: 75%">Xerces Native Interface - Framework for streaming a document and constructing generic parsers</td> </tr> <tr> <td> <a title="Homepage for XOM" target="_blank">XOM</a> </td> <td style="FONT-SIZE: 75%">XML Object Model - Tree-based API for processing XML that strives for correctness and simplicity.</td> </tr> <tr> <td> <a title="Homepage for XStream" target="_blank">XStream</a> </td> <td style="FONT-SIZE: 75%">XML serialization</td> </tr> </tbody> </table> <img src ="http://www.aygfsteel.com/onlykeke/aggbug/42022.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/onlykeke/" target="_blank">奇葛?/a> 2006-04-19 23:23 <a href="http://www.aygfsteel.com/onlykeke/articles/42022.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java框架单感?/title><link>http://www.aygfsteel.com/onlykeke/articles/42021.html</link><dc:creator>奇葛?/dc:creator><author>奇葛?/author><pubDate>Wed, 19 Apr 2006 15:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/onlykeke/articles/42021.html</guid><wfw:comment>http://www.aygfsteel.com/onlykeke/comments/42021.html</wfw:comment><comments>http://www.aygfsteel.com/onlykeke/articles/42021.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/onlykeke/comments/commentRss/42021.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/onlykeke/services/trackbacks/42021.html</trackback:ping><description><![CDATA[jbob兄的几句话说得很好:<br />当jdbc写sqlȝ的时候,hibernate{orm工具出现了?br />当ejb复杂Q繁琐的时候,spring{等又出来了?br />当jsp/servlet依然很繁琐的时候,struts,webwork{等MVCl构的引入,freemarker,velocity{等面膜版语言出现了。然后便是tapestry,jsf{等.<br />随着框架的引入,带来最多的便是配置Q大量的XML被引入到工程目中?br />于是java anototion不失时机地出来了Q大家可以直接在javac里面进性配|?br />工具Q框架在发展Qjava人的x点很多。几千个妖精在打Ӟ大家学都学不完?br /><br /><br /><br />曄qJSFQ目前来说仍然是Zjsp(虽然宣称可以有其他的实现)Q大量的标签Q我比较烦标{,标签的引入压根就是引增加复杂性)Q然后是比较烦琐的xml配置Q像我这U懒人,觉得q样的开发就是不太爽?br /><br />Tapestry没有仔细qQ只是感觉代码限制性较多,束缚手脚Q不知道最新的版本什么效果?br /><br />q是比较喜欢wicket的开发方式,虽然不太成熟且也有一定应用范围的限制?br />Q不断补?....Q?img src ="http://www.aygfsteel.com/onlykeke/aggbug/42021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/onlykeke/" target="_blank">奇葛?/a> 2006-04-19 23:13 <a href="http://www.aygfsteel.com/onlykeke/articles/42021.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DetachableModel in Wickethttp://www.aygfsteel.com/onlykeke/articles/41734.html奇葛?/dc:creator>奇葛?/author>Tue, 18 Apr 2006 12:23:00 GMThttp://www.aygfsteel.com/onlykeke/articles/41734.htmlhttp://www.aygfsteel.com/onlykeke/comments/41734.htmlhttp://www.aygfsteel.com/onlykeke/articles/41734.html#Feedback0http://www.aygfsteel.com/onlykeke/comments/commentRss/41734.htmlhttp://www.aygfsteel.com/onlykeke/services/trackbacks/41734.htmlPOJO不直接显C在当前面中的model部分Q如果要传入下一个页面,可以在onAttach()Ҏ中获取,既节省sessionQ又满“只取需要的”的_原则?/p>

]]>
վ֩ģ壺 Դ| ѷ| | | ݳ| | | Ǽ| | | | ̩| | ư| | | ˫| | Ӻ| | | ɽ| ݳ| | | | ̨| | ¤| ϸ| | | ͭ| | | | | | | | |