<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>ithero</title>
    <description>技术不是全部</description>
    <link>http://ithero.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>WEB2.0站中的layout个性化定制探讨(想说web开发系列之一)</title>
        <author>ithero</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ithero.javaeye.com">ithero</a>&nbsp;
          链接：<a href="http://ithero.javaeye.com/blog/149019" style="color:red;">http://ithero.javaeye.com/blog/149019</a>&nbsp;
          发表时间: 2007年12月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp; 决定也开始写博了。抽点时间整理下自己开发过程中遇到的技术问题及个人经验。这是本人《想说web开发不容易》第一篇。</p>
<p>&nbsp;&nbsp; 随着web2.0概念的新起.网站的功能设计越来越趋势以用户设计为中心了.为了留住用户的心,各大网站争出奇招；用户体验、易用性现在已成为各产品经理及开发人员的常用语，今天你体验了吗？</p>
<p>AJAX、FLEX、JFX、S<font face="Arial">ilverlight各大帮派悍然争霸，正是那俗语说得好，兴、苦也咱编码，亡、也苦咱编码老百姓，这不。主流的汹风作浪，我们也开始赶躺潮流，起得早不如起得巧，今日项目组召集各位奋斗在编码一线的开发人员相聚一堂。话说咱们项目中这个博客，相册什么的，空间也该来过拖拽布局玩玩。再来过自定义模版、CSS什么的，功能咱也一个也不能少，然后再曰公司宗旨&ldquo;明明白白留住用户的心&rdquo;，大家一番大眼瞪小眼后，为哙这玩意儿虽说不困难，但麻烦呀，也罢，一切为了和谐。言罢归正题，这个性化定制这个过程，要涉及到三方面的内容，即主题（模版）、模块、版式.具体我们讨论它的一些主要实现思路。先声明下以下还仅为个人功能实现前的一些构思，未成熟前请勿采用。</font></p>
<p>&nbsp; 首要问题是版式布局：我的初步构想如，暂支持三种页面版式，三栏布局，二栏左布局，二栏右布局，CSS的第一种写法就是先把三栏的CSS都写出来，然后依据需要隐藏对应一栏的CSS，另一种写法是写三套CSS。两个方法各有千秋，请大家发表看法，如果您有好的构思，可以奉献一下大家讨论。</p>
<p>&nbsp;版式布局无了，通常还有模块的布局。一般为了易用性及用户体验都采用拖拽模块来进行其版式布局，该功能目前已经较为常见，有些哥们也实现过。但对我来说是第一次接触。拖拽容易。但布局的记忆保存却愁坏了我，因为已经有了很多现有模版主题，现在要新增加版式布局及模块布局，兼容以前的模版真是个难题。拖拽模块后，别忘记保存其模块的排列顺序。这部分实现我的个人想法，第一种方式，关系数据库保存，首先要依据它的版式来采用。是三栏还是二栏的，一个LAOYUT表，其中主要有四个字段，（USER_ID,LAYOUT_LEFT,LAYOUT_CENTER,LAYOUT_RIGHT），然后把模块之间用空格或者逗号分隔保存到对应的边栏当中，推荐用空格间隔（理由全半角问题）,第二种方式就是XML。父子节点。个性化定制实现了这两块主要的操作其它方面就开发就如苞丁解牛.说白了就是一个CSS程序化的过程。</p>
<p>如有不当。待大家指正，欢迎一起讨论。一起成长。</p>
<p>云淡风轻（MSN:aithero#hotmail.com）</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://ithero.javaeye.com/blog/149019#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><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, 17 Dec 2007 23:54:36 +0800</pubDate>
        <link>http://ithero.javaeye.com/blog/149019</link>
        <guid>http://ithero.javaeye.com/blog/149019</guid>
      </item>
      <item>
        <title>久违的问题.hibernate getxx()集合出现的延迟加载失效.</title>
        <author>ithero</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ithero.javaeye.com">ithero</a>&nbsp;
          链接：<a href="http://ithero.javaeye.com/blog/139289" style="color:red;">http://ithero.javaeye.com/blog/139289</a>&nbsp;
          发表时间: 2007年11月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial">主要映射如下:</font></p>
<p><font face="Arial">表A: USER_INFO</font></p>
<p><font face="Arial">表B(中间表):USER_GROUP</font></p>
<p><font face="Arial">表C:GROUPS</font></p>
<p><font face="Arial">多对多关联关系映射片段:注意,该映取消了中间表user_group的映射.</font></p>
<p><font face="Arial">用户表A:user_info.hbm.xml</font></p>
<font face="Arial">
<div class="code_title">java 代码</div>
</font><font face="Arial">
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>&lt;&nbsp;set&nbsp;name=</span><span class="string">&quot;userGroups&quot;</span><span>&nbsp;table=</span><span class="string">&quot;USER_GROUPS&quot;</span><span>&nbsp;lazy=</span><span class="string">&quot;true&quot;</span><span>&nbsp;inverse=</span><span class="string">&quot;false&quot;</span><span>&nbsp;cascade=</span><span class="string">&quot;save-update&quot;</span><span>&nbsp;batch-size=</span><span class="string">&quot;5&quot;</span><span>&gt; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&lt;&nbsp;key&gt; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&nbsp;column&nbsp;name=</span><span class="string">&quot;USER_ID&quot;</span><span>&nbsp;length=</span><span class="string">&quot;40&quot;</span><span>&nbsp;not-</span><span class="keyword">null</span><span>=</span><span class="string">&quot;true&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;&nbsp;/key&gt; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;&nbsp;many-to-many&nbsp;</span><span class="keyword">class</span><span>=</span><span class="string">&quot;com.xx.domain.UserGroups&quot;</span><span>&nbsp;column=</span><span class="string">&quot;GROUP_ID&quot;</span><span>&nbsp;outer-join=</span><span class="string">&quot;auto&quot;</span><span>/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&lt;&nbsp;t&gt;&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>组织表C : groups.hbm.xml</p>
<font face="Arial">
<div class="code_title"><font face="Arial">
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>&lt;&nbsp;set&nbsp;name=</span><span class="string">&quot;userInfo&quot;</span><span>&nbsp;table=</span><span class="string">&quot;USER_GROUP&quot;</span><span>&nbsp;lazy=</span><span class="string">&quot;true&quot;</span><span>&nbsp;inverse=</span><span class="string">&quot;true&quot;</span><span>&nbsp;cascade=</span><span class="string">&quot;save-update&quot;</span><span>&nbsp;batch-size=</span><span class="string">&quot;5&quot;</span><span>&gt; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&lt;&nbsp;key&gt; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&nbsp;column&nbsp;name=</span><span class="string">&quot;GROUP_ID&quot;</span><span>&nbsp;length=</span><span class="string">&quot;40&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&lt;&nbsp;/key&gt; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;many-to-many&nbsp;</span><span class="keyword">class</span><span>=</span><span class="string">&quot;com.xxx.UserInfo&quot;</span><span>&nbsp;column=</span><span class="string">&quot;USER_ID&quot;</span><span>/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&lt;&nbsp;&nbsp;t&gt;&nbsp;&nbsp;</span> </li>
</ol>
</div>
<br />
</font></div>
</font><font face="Arial"><span><span>
<p>程序片段如下:</p>
<font face="Arial">
<div class="code_title">java 代码</div>
</font><font face="Arial">
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>UserInfo&nbsp;userInfo&nbsp;=&nbsp;userDao.get(</span><span class="string">&quot;123456&quot;</span><span>); &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Groups&nbsp;groups&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Groups(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>groups.getUserInfos().add(userInfo&nbsp;);&nbsp;</span><span class="comment">//程序执行到这句.把UserInfo表中,所有的set集合全加载出来了.但是那些关联映射我都相应的加了lazy=&quot;true&quot; </span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>执行到上面的groups.getUserInfos.add(userInfo); &nbsp;&nbsp;</span></li>
</ol>
</div>
<p>打印出来一大堆sql.仔细一看,全是userInfo的其它set集合.显然这是存在问题的<br />
请问大家,这种情况主要是由什么引起的.映射错误吗?谢谢</p>
</font></span></span></font></font>
          <br/>
          <span style="color:red;">
            <a href="http://ithero.javaeye.com/blog/139289#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</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 18:16:47 +0800</pubDate>
        <link>http://ithero.javaeye.com/blog/139289</link>
        <guid>http://ithero.javaeye.com/blog/139289</guid>
      </item>
      <item>
        <title>Struts2 Action方法执行两次的问题?model-driven奇怪现象</title>
        <author>ithero</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ithero.javaeye.com">ithero</a>&nbsp;
          链接：<a href="http://ithero.javaeye.com/blog/122566" style="color:red;">http://ithero.javaeye.com/blog/122566</a>&nbsp;
          发表时间: 2007年09月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          项目采用的支撑框架Struts2.09,Spring2 Hibernate3.2.在项目开发过程中.采用Struts2.09开发中采用model-driven的方式来获取对象产生了一些奇怪的问题.第一个问题:<br />我在action中如果只配置:<br />&lt;interceptor-ref name="model-driven"/><br />例如在我的UserAction就获取不到User对象.user.jsp页面我是按照model-driven的写法如:<br />user.userName user.userPasswd用的也是strtus2的标签.在Action中同样写了对应的<br /><pre name="code" class="java">private User user = new User();
private User getUser(){...}
private void setUser(User user){...}</pre><br />奇怪的是获取不了页面传来的user对象属性,如果用getParemeter("user.userName")是可以获得值的.<br />但是在Action中再增加其它的拦截器如:<br />&lt;interceptor-ref name="validationWorkflowStack" /><br />或者干脆增加:<br />&lt;interceptor-ref name="defaultStack"/><br />这样Action中的User对象就能顺利获取页面传来的属性值了.<br /><pre name="code" class="java">	&lt;package name="userManger" extends="struts-default">
         &lt;action name="albumAction" class="com.xx.struts.action.UserAction">
		      	&lt;result name="success" type="dispatcher">
		      	 	&lt;param name="location">/userinfo.jsp&lt;/param>
		      	&lt;/result>
		&lt;interceptor-ref name="model-driven"/>
		&lt;interceptor-ref name="validationWorkflowStack" />
	  	 &lt;/action>
	&lt;/package></pre>但是这样又出现一个奇怪的问题.就是我的Action中的代码会多执行一次.例如<br />我的Action中默认的execute()方法中有一段:<br /><pre name="code" class="java">user.setCreateTime(new Date())
user.setUserStatus(Constans.IS_LEGALITY);
.....
UserManager.save(user);</pre><br />这段在execute()方法中的代码会在第一次保存完之后又返回重新执行一次.<br />这个时候程序当然就会报异常了,有些需要从页面上获得的属性在数据库中是必填的就会报值不能空的异常了.但是事实上是通过Debug可以发现程序的execute的方法重复执行了一次.且控制台也打印出两条insert语句了.刚开始我还以为是hibernate invert配置问题.后来通过debug排除这种问题.不知道这种原因有谁有较深入的了解.或者也同样出现个,请指教一下,谢谢
          <br/>
          <span style="color:red;">
            <a href="http://ithero.javaeye.com/blog/122566#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/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 10 Sep 2007 14:14:18 +0800</pubDate>
        <link>http://ithero.javaeye.com/blog/122566</link>
        <guid>http://ithero.javaeye.com/blog/122566</guid>
      </item>
      <item>
        <title>北京中关村高薪诚聘高级Java工程师</title>
        <author>ithero</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ithero.javaeye.com">ithero</a>&nbsp;
          链接：<a href="http://ithero.javaeye.com/blog/60070" style="color:red;">http://ithero.javaeye.com/blog/60070</a>&nbsp;
          发表时间: 2007年03月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1. 负责开发WEB千万级用户在线产品应用；<br />2. 开发的系统具有高性能和高可靠性；<br />3. 参与产品架构设计。<br />职位要求：<br />1. 计算机或者相关专业(本科)；<br />2. 有过大型商业网站项目的实际系统开发经验（比如交友网站、博客等等WEB2.0开发）； <br />3. 熟练掌握基于Web和数据库的应用程序开发，熟悉Oracle、SQLServer数据库； <br />4. 2年以上的Java开发经验，熟悉Linux操作系统； <br />5. 熟悉Weblogic、Tomcat、resin等应用服务器的部署（必要）； <br />6. 熟练掌握Hibernate O/R对象关系映射技术（必要）； <br />7. 熟练掌握Struts framework\Spring framework框架； <br />8. 必须具有Ajax及Spring开发经验； <br />9. 具有WEB项目规划架构设计经验优先 。<br />要求不符者请勿投简历。谢谢<br />简历投至:aithero@bobo365.com<br />工作地点：北京、中关村南大街<br />具体公司介绍请登录我们的网站查看
          <br/>
          <span style="color:red;">
            <a href="http://ithero.javaeye.com/blog/60070#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</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>Thu, 15 Mar 2007 16:07:00 +0800</pubDate>
        <link>http://ithero.javaeye.com/blog/60070</link>
        <guid>http://ithero.javaeye.com/blog/60070</guid>
      </item>
  </channel>
</rss>