<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>classicbride</title>
    <description></description>
    <link>http://classicbride.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>Struts2 与 tiles 使用上疑惑</title>
        <author>classicbride</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://classicbride.javaeye.com">classicbride</a>&nbsp;
          链接：<a href="http://classicbride.javaeye.com/blog/143776" style="color:red;">http://classicbride.javaeye.com/blog/143776</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我的页中面有好几个jsp页面，其中有两个类似排行榜的东西，需要从action中初始化...   tiles   可以直接到   action   中吗？ <br />我的意思是如下：但是这样子写不行....   <br />&lt;tiles-definitions> <br />&lt;definition   name="myapp.homepage"   preparer="/character/listWork.actin"         template="/tiles_test.jsp"> <br />&lt;put-attribute   name="header"   value="/WEB-INF/jsp/character/listWork.jsp"/> <br />                                &lt;put-attribute   name="main"   value="/test/test.action"/>     <br />&lt;put-attribute   name="footer"   value="/WEB-INF/jsp/character/listHomeplace.jsp"/>             <br />&lt;/definition>   <br />&lt;/tiles-definitions> <br /><br /><br />如果tiles 1.X的话：<br />&lt;tiles-definitions><br /> &lt;definition name="member-definition" path="/Jsp/layout.jsp"><br />  &lt;put name="top" value="/mTop.do"/><br />  &lt;put name="left" value="/mLeft.do"/><br />  &lt;put name="main" value="/defaultMmain.do"/><br /> &lt;/definition><br />&lt;/tiles-definitions><br />这就是我希望实现的效果
          <br/>
          <span style="color:red;">
            <a href="http://classicbride.javaeye.com/blog/143776#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 18:03:21 +0800</pubDate>
        <link>http://classicbride.javaeye.com/blog/143776</link>
        <guid>http://classicbride.javaeye.com/blog/143776</guid>
      </item>
      <item>
        <title>怎样更改 jfreechat 默认存放路径</title>
        <author>classicbride</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://classicbride.javaeye.com">classicbride</a>&nbsp;
          链接：<a href="http://classicbride.javaeye.com/blog/139329" style="color:red;">http://classicbride.javaeye.com/blog/139329</a>&nbsp;
          发表时间: 2007年11月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          项目中使用Jfreechat来做报表，它默认会把生成的报表图片存放到 tomcat 的 temp 目录下，但是现在要更改这个路径到指定路径...请问怎么更改......
          <br/>
          <span style="color:red;">
            <a href="http://classicbride.javaeye.com/blog/139329#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 08 Nov 2007 21:27:37 +0800</pubDate>
        <link>http://classicbride.javaeye.com/blog/139329</link>
        <guid>http://classicbride.javaeye.com/blog/139329</guid>
      </item>
      <item>
        <title>对于异常处理的一些构想 大家看看有没可能实现</title>
        <author>classicbride</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://classicbride.javaeye.com">classicbride</a>&nbsp;
          链接：<a href="http://classicbride.javaeye.com/blog/100817" style="color:red;">http://classicbride.javaeye.com/blog/100817</a>&nbsp;
          发表时间: 2007年07月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          经常上网会看到一些网站出错的时候会跳到错误页上,同时带有把这个错误发送给管理员的链接...<br /><br />我现在有个想法,不知道能不能实现...看看<br /><br />当程序出现异常的时候 将这个异常对象进行串行化写入数据库,然后在需要的时候再并行化把它还原回来,如果<br /><br />是异常对象,还原回来直接printstackTrace()就可以看到当时运行时的异常信息了,这样不就可以更好便于<br /><br />修改程序中的BUG了....<br /><br />各位觉得呢  现在只是有这个想法 不知道怎么下手实现....  给点意思  谢谢
          <br/>
          <span style="color:red;">
            <a href="http://classicbride.javaeye.com/blog/100817#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 13 Jul 2007 18:43:20 +0800</pubDate>
        <link>http://classicbride.javaeye.com/blog/100817</link>
        <guid>http://classicbride.javaeye.com/blog/100817</guid>
      </item>
      <item>
        <title>常用集合示例</title>
        <author>classicbride</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://classicbride.javaeye.com">classicbride</a>&nbsp;
          链接：<a href="http://classicbride.javaeye.com/blog/99850" style="color:red;">http://classicbride.javaeye.com/blog/99850</a>&nbsp;
          发表时间: 2007年07月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial">/*<br />
&nbsp;一些常用的集合类的方法的用法演示。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JAVA容器的两种基本类型：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 区别在于每个位置保存的元素个数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Collection:一组独立的元素通常都 要服从某种规则。List按对象进入的顺序保存对象，不做排序和编辑；而set则是不能有重复&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 的元素，即每个对象只接受一次，并有自己的内部的排序算法。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Map:一组成对的&ldquo;键值对&rdquo;对象,get()时一般返回Entry --&gt;是一种专门针对Hash容器的数据类型，用来保存键值对。<br />
*/</font></p>
<p><font face="Arial">import java.util.*;<br />
public class JAVAContainer {</font></p>
<font face="Arial">
<p><br />
/*介绍集合之前先看一看迭代器：<br />
&nbsp; 简化对集合的操作，主要功能是遍历并选择集合中的对象，其中有三个最要的方法:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.hasNext() 返回布尔值 看集合中还有没有元素<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.next() 返回下一个元素 返回的是O的所一定要强转一下<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.remove() 元素删除<br />
&nbsp; 接口 Iterator:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 构建一个Iterator迭代器 --&gt;Iterator iterator=所要进行迭代的集合对象.iterator();</p>
<p>&nbsp; 接口 Enumeration&lt;E&gt;:&nbsp; 注意=====Enumeration已经不是主流，Iterator是它的下一代替代品<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 构建一个Enumeration迭代器--&gt;Enumeration enumeration=所要进行迭代的集合对象.elements()<br />
*/</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><br />
public static void main(String[] args) throws Exception{</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>//&nbsp;&nbsp; ArrayList:&nbsp; 允许包括 null 在内的所有元素,此类是线程不同步的</p>
<p>{<br />
&nbsp;&nbsp; ArrayList arraylist=new ArrayList();<br />
&nbsp;&nbsp; arraylist.add(0,&quot;end&quot;);&nbsp; //指定索引加入值,需注意的是，如果现有2个值，我加入索引为5的那么就会出现异常,即不能越位<br />
&nbsp;&nbsp; for(int i=0;i&lt;2;i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp; arraylist.add(i,String.valueOf(i));&nbsp; //将指定元素加入指定位置<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; System.out.println(&quot;ArrayList:&quot;);<br />
&nbsp;&nbsp; for(int i=0;i&lt;arraylist.size();i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.print(arraylist.get(i)+&quot;;&quot;);&nbsp; //get(int i)取出指定位置的元素 <br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; arraylist.add(&quot;0&quot;);//直接加入值到ArrayList的最后<br />
&nbsp;&nbsp;&nbsp; arraylist.add(&quot;0&quot;);<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; // arraylist.lastIndexOf(&quot;0&quot;) 返回指定的对象在列表中最后一次出现的位置索引<br />
&nbsp;&nbsp;&nbsp; System.out.print(&quot;\nArrayList\'s lastIndexOf(\&quot;0\&quot;) is &quot;+arraylist.lastIndexOf(&quot;0&quot;)); <br />
}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>//&nbsp; Collections: 此类完全由在 collection 上进行操作或返回 collection 的静态方法组成</p>
<p>{<br />
&nbsp; String []array=new String[]{&quot;a&quot;,&quot;b&quot;,&quot;c&quot;};</p>
<p>&nbsp; List list=Arrays.asList(array);&nbsp; // aslist(Object []) 通过一个已有数组，构造一个List对象</p>
<p>&nbsp; Collections.fill(list,&quot;Fill&quot;);&nbsp;&nbsp; //用Fill填充全部元素 使用指定元素替换指定列表中的所有元素。</p>
<p>&nbsp; System.out.println(&quot;\nCollections:&quot;);<br />
&nbsp; for(int i=0;i&lt;list.size();i++){<br />
&nbsp;&nbsp;&nbsp; System.out.print(list.get(i)+&quot;;&quot;);<br />
&nbsp; }</p>
<p>&nbsp; array=new String[]{&quot;1&quot;,&quot;2&quot;,&quot;3&quot;};<br />
&nbsp; List list2=Arrays.asList(array);<br />
&nbsp; Collections.copy(list,list2);&nbsp; //拷贝list2的数据进list</p>
<p>&nbsp; System.out.println(&quot;\n&quot;+list);</p>
<p>&nbsp; Collections.swap(list,2,1); //调换索引为1和2的元素的位置&nbsp; 在指定列表的指定位置处交换元素</p>
<p>&nbsp; System.out.println(list);<br />
}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>//&nbsp; HashMap 一个速度最快的容器,此类不保证映射的顺序，特别是它不保证该顺序恒久不变,不是线程同步</p>
<p>{<br />
&nbsp; HashMap hashmap=new HashMap();<br />
&nbsp; hashmap.put(&quot;0&quot;,&quot;c&quot;);&nbsp; //存放对象用put方法 记住所存的一定是键值对<br />
&nbsp; hashmap.put(&quot;1&quot;,&quot;a&quot;);<br />
&nbsp; hashmap.put(&quot;2&quot;,&quot;b&quot;);<br />
&nbsp; hashmap.put(&quot;3&quot;,&quot;a&quot;);<br />
&nbsp; System.out.println(&quot;HashMap:&quot;);</p>
<p>&nbsp; System.out.println(hashmap);&nbsp; //该容器有其内部的排序方式 事实上是依据哈希算法来排的 <br />
&nbsp; <br />
&nbsp; Set set=hashmap.keySet();&nbsp; //获取全部键 它的返回类型是set<br />
&nbsp; Iterator iterator=set.iterator();<br />
&nbsp; while(iterator.hasNext()){<br />
&nbsp;&nbsp;&nbsp; System.out.print(hashmap.get(iterator.next())+&quot;;&quot;);<br />
&nbsp; }<br />
}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>//&nbsp; HashSet&nbsp; 不保证集合的迭代顺序</p>
<p>{<br />
&nbsp; HashSet hashset=new HashSet();&nbsp; <br />
&nbsp; //一个绝对不能重复的类型 如果有遇到存重复的值不会报异常,只是add()会返一个boolean型的&nbsp; false,当然肯定是不会把该元素加入集合&nbsp; 中的,它同样有size(),isEmpty(),remove()等方法。 <br />
&nbsp; hashset.add(&quot;c&quot;);<br />
&nbsp; hashset.add(&quot;b&quot;);<br />
&nbsp; hashset.add(&quot;a&quot;);<br />
&nbsp; hashset.add(&quot;a&quot;);<br />
&nbsp; hashset.add(&quot;b&quot;);<br />
&nbsp; System.out.println(&quot;\nHashSet:&quot;);<br />
&nbsp; System.out.println(hashset);<br />
&nbsp; Iterator iterator=hashset.iterator();//取出元素<br />
&nbsp; while(iterator.hasNext()){<br />
&nbsp;&nbsp;&nbsp; System.out.print(iterator.next()+&quot;;&quot;);<br />
&nbsp; }<br />
}</p>
<p>&nbsp;</p>
<p><br />
//Hashtable 任何非 null 对象都可以用作键或值，现在用得不多啦，一个完全可以由其他容器替换的老容器类型<br />
{<br />
&nbsp; Hashtable hashtable=new Hashtable();<br />
&nbsp; hashtable.put(&quot;0&quot;,&quot;c&quot;);<br />
&nbsp; hashtable.put(&quot;1&quot;,&quot;a&quot;);<br />
&nbsp; hashtable.put(&quot;3&quot;,&quot;c&quot;);<br />
&nbsp; hashtable.put(&quot;2&quot;,&quot;b&quot;);<br />
&nbsp; System.out.println(&quot;\nHashtable:&quot;);<br />
&nbsp; //注意与之对应的迭代器是Enumeration，而不是Iterator<br />
&nbsp; Enumeration enumeration=hashtable.elements();//获取元素，Enumeration已经不是主流，Iterator是它的下一代替代品<br />
&nbsp; while(enumeration.hasMoreElements()){<br />
&nbsp;&nbsp;&nbsp; System.out.print(enumeration.nextElement()+&quot;;&quot;);<br />
&nbsp; }<br />
}</p>
<p>&nbsp;</p>
<p><br />
//TreeMap&nbsp; <br />
{<br />
&nbsp; TreeMap treemap=new TreeMap(); <br />
&nbsp; treemap.put(&quot;0&quot;,&quot;d&quot;); //指定键值,如果映射以前包含一个此键的映射关系，那么将替换原值<br />
&nbsp; treemap.put(&quot;2&quot;,&quot;a&quot;);<br />
&nbsp; treemap.put(&quot;1&quot;,&quot;b&quot;);<br />
&nbsp; treemap.put(&quot;3&quot;,&quot;c&quot;);<br />
&nbsp; System.out.println(&quot;\nTreeMap:&quot;);//可以对键排序<br />
&nbsp; System.out.println(treemap);<br />
&nbsp; System.out.println(treemap.firstKey());//返回第一个键<br />
&nbsp; Set set=treemap.keySet();<br />
&nbsp; Iterator iterator=set.iterator();<br />
&nbsp; while(iterator.hasNext()){<br />
&nbsp; System.out.print(treemap.get(iterator.next())+&quot;;&quot;);<br />
&nbsp;}<br />
}</p>
<p>//TreeSet<br />
{<br />
&nbsp; TreeSet treeset=new TreeSet();//自动排序内容<br />
&nbsp; treeset.add(&quot;b&quot;);<br />
&nbsp; treeset.add(&quot;a&quot;);<br />
&nbsp; treeset.add(&quot;c&quot;);<br />
&nbsp; treeset.add(&quot;d&quot;);<br />
&nbsp; System.out.println(&quot;\nTreeSet:&quot;);<br />
&nbsp; System.out.println(treeset);<br />
&nbsp; System.out.println(treeset.first());//返回第一个元素<br />
&nbsp; Iterator iterator=treeset.iterator();<br />
&nbsp; while(iterator.hasNext()){<br />
&nbsp;&nbsp; System.out.print(iterator.next()+&quot;;&quot;);<br />
&nbsp; }<br />
}</p>
<p>//Vector&nbsp; 一个最早的容器类，实现方式最老，同是它是线程同步的的，所以效率最慢，先进先出<br />
&nbsp;{</p>
<p>&nbsp; Synchronized public Vector getItems(){&nbsp; //线程同步的方法<br />
&nbsp;return ....;<br />
&nbsp; }</p>
<p>&nbsp; Vector vector=new Vector();<br />
&nbsp; vector.add(0,&quot;b&quot;);&nbsp; //在指定位置加入指定元素<br />
&nbsp; vector.add(&quot;a&quot;);&nbsp;&nbsp;&nbsp; //加到最后<br />
&nbsp; vector.addElement(&quot;d&quot;); //加到最后，将其集合的大小加1<br />
&nbsp; vector.add(&quot;c&quot;);<br />
&nbsp; System.out.println(&quot;\nVector:&quot;);<br />
&nbsp; System.out.println(vector);<br />
&nbsp; vector.set(2,&quot;h&quot;);//替换掉指定索引的元素<br />
&nbsp; System.out.println(vector);<br />
&nbsp; Object []str=vector.toArray();&nbsp; //将集合中的元素拷到一个数组中，注间因为集合中存的是对象，所以数组必须是Object类型<br />
&nbsp; for(int i=0;i&lt;str.length;i++){<br />
&nbsp;&nbsp;&nbsp; System.out.print(str[i]+&quot;;&quot;);<br />
&nbsp; }<br />
&nbsp; vector.setSize(2);//重新设置大小为2<br />
&nbsp; System.out.println(&quot;\n&quot;+vector);<br />
}<br />
&nbsp;}<br />
} </p>
<p>如果添加元素的顺序对你很重要，采用LinkedHashSet和LinkedHashMap,具体用法看帮助...<br />
&nbsp;<br />
另外还有SortedMap和SortedSet可以实现一定规则的排序，具体使用请参照JAVA_API，哈哈哈....</p>
</font>
          <br/>
          <span style="color:red;">
            <a href="http://classicbride.javaeye.com/blog/99850#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 10 Jul 2007 18:14:22 +0800</pubDate>
        <link>http://classicbride.javaeye.com/blog/99850</link>
        <guid>http://classicbride.javaeye.com/blog/99850</guid>
      </item>
  </channel>
</rss>