ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>99精品欧美一区二区三区,久久手机免费观看,免费精品视频一区二区三区http://www.aygfsteel.com/beijing2008/category/40642.htmlé±¼æ€ÀL˜¯åœ¨æ“v里过完一ç”?/description>zh-cnTue, 29 Jun 2010 05:58:26 GMTTue, 29 Jun 2010 05:58:26 GMT60å¦Õd­VS情ähVS¾U¢é¢œçŸ¥å·±http://www.aygfsteel.com/beijing2008/archive/2010/06/27/324622.html.Sun.SunSun, 27 Jun 2010 13:14:00 GMThttp://www.aygfsteel.com/beijing2008/archive/2010/06/27/324622.htmlhttp://www.aygfsteel.com/beijing2008/comments/324622.htmlhttp://www.aygfsteel.com/beijing2008/archive/2010/06/27/324622.html#Feedback0http://www.aygfsteel.com/beijing2008/comments/commentRss/324622.htmlhttp://www.aygfsteel.com/beijing2008/services/trackbacks/324622.html情äh是一¿Uè¡¥å¿ï¼Œè¡¥å¿ä½ æƒ³ä»Žå¦»å­é‚£å¾—到却又无法得到的激情;
¾U¢é¢œçŸ¥å·±ž®±æ˜¯ä¸€¿Uç‚¹æ‹¨ï¼Œç‚ÒŽ‹¨ä½ å¿ƒä¸­çš„˜qähÓ|ã€?nbsp; é˜…读全文

]]>
怀å¿ëн—¾U›_°”å¤?äº?http://www.aygfsteel.com/beijing2008/archive/2010/06/22/324107.html.Sun.SunMon, 21 Jun 2010 17:38:00 GMThttp://www.aygfsteel.com/beijing2008/archive/2010/06/22/324107.htmlhttp://www.aygfsteel.com/beijing2008/comments/324107.htmlhttp://www.aygfsteel.com/beijing2008/archive/2010/06/22/324107.html#Feedback2http://www.aygfsteel.com/beijing2008/comments/commentRss/324107.htmlhttp://www.aygfsteel.com/beijing2008/services/trackbacks/324107.html阅读全文

]]>
无题http://www.aygfsteel.com/beijing2008/archive/2010/06/20/324006.html.Sun.SunSun, 20 Jun 2010 09:43:00 GMThttp://www.aygfsteel.com/beijing2008/archive/2010/06/20/324006.htmlhttp://www.aygfsteel.com/beijing2008/comments/324006.htmlhttp://www.aygfsteel.com/beijing2008/archive/2010/06/20/324006.html#Feedback0http://www.aygfsteel.com/beijing2008/comments/commentRss/324006.htmlhttp://www.aygfsteel.com/beijing2008/services/trackbacks/324006.html城市灯火何止万家
那星星点点的光亮
映衬风雨健硕è½È›ˆçš„舞æ­?br /> ˜q½é€è‡ªç”±åŞ骸的放浪
而偏˜qœä¹¡æ‘沉寂在自然ä¸?br /> 只有一息微å¼Þq¯å½±åœ¨æ¸…风中摇æ™?br /> ½{‰å¾…希冀的再ç”?br /> 渴望冒出拔地楼房
伤逝隐˜q›æ¢¦çš„土å£?br />

]]>
webServiceåQšProvider org.apache.xalan.processor.TransformerFactoryImpl not foundhttp://www.aygfsteel.com/beijing2008/archive/2010/05/13/320928.html.Sun.SunThu, 13 May 2010 13:28:00 GMThttp://www.aygfsteel.com/beijing2008/archive/2010/05/13/320928.htmlhttp://www.aygfsteel.com/beijing2008/comments/320928.htmlhttp://www.aygfsteel.com/beijing2008/archive/2010/05/13/320928.html#Feedback0http://www.aygfsteel.com/beijing2008/comments/commentRss/320928.htmlhttp://www.aygfsteel.com/beijing2008/services/trackbacks/320928.htmlwebService™å¹ç›®
Tomcat5.0.28 + JDK1.5 + xfire1.2.6

™å¹ç›®ä»ŽTomcat6.0™å¹ç›®æ‹¯‚´å›žæ¥åQŒtomcat6.0˜qè¡Œæ­£å¸¸ã€?br /> 问题出在Tomcatçš?br /> \common\endorsed\ä¸?br /> 删除或apache¾|‘站下蝲更新˜q™ä¸¤ä¸ªjar卛_¯ã€?br />



]]>
关于 字节码增�摘要http://www.aygfsteel.com/beijing2008/archive/2010/05/08/320382.html.Sun.SunSat, 08 May 2010 15:57:00 GMThttp://www.aygfsteel.com/beijing2008/archive/2010/05/08/320382.htmlhttp://www.aygfsteel.com/beijing2008/comments/320382.htmlhttp://www.aygfsteel.com/beijing2008/archive/2010/05/08/320382.html#Feedback1http://www.aygfsteel.com/beijing2008/comments/commentRss/320382.htmlhttp://www.aygfsteel.com/beijing2008/services/trackbacks/320382.htmlJPOX requires that all classes that are persisted implement PersistenceCapable, an interface defined by JDO. Why should we do this, Hibernate/TopLink dont need it ?. Well thats a simple question really

  • JPOX uses this PersistenceCapable interface, and adds it using bytecode enhancement techniques so that you never need to actually change your classes. This means that you get transparent persistence, and your classes always remain your classes. ORM tools that use a mix of reflection and/or proxies are not totally transparent.
  • JPOX' use of PersistenceCapable provides transparent change tracking. When any change is made to an object the change creates a notification to JPOX allowing it to be optimally persisted. ORM tools that dont have access to such change tracking have to use reflection to detect changes. The performance of this process will break down as soon as you read a large number of objects, but modify just a handful, with these tools having to compare all object states for modification at transaction commit time.

In a JDO-enabled application there are 3 categories of classes. These are PersistenceCapable, PersistenceAware and normal classes. The Meta-Data defines which classes fit into these categories. To give an example for JDO, we have 3 classes. The class A is to be persisted in the datastore. The class B directly updates the fields of class A but doesn't need persisting. The class C is not involved in the persistence process. We would define JDO MetaData for these classes like this

1 <class name="A" persistence-modifier="persistence-capable">
2     <field name="myField">
3         
4     </field>
5     
6 </class>
7 <class name="B" persistence-modifier="persistence-aware">
8 </class>


 

So our MetaData is mainly for those classes that are PersistenceCapable and are to be persisted to the datastore (we don't really need the persistence-modifier for thse classes since this is the default). For PersistenceAware classes we simply notate that the class knows about persistence. We don't define MetaData for any class that has no knowledge of persistence.

JDO requires that all classes to be persisted must implement the PersistenceCapable interface . Users could manually do this themselves but this would impose work on them. JDO permits the use of a byte-code enhancer that converts the users normal classes to implement this interface. JPOX provides its own byte-code enhancer (this can be found in the jpox-enhancer.jar). This section describes how to use this enhancer with JPOX. The JPOX enhancer fully implements JDO2 and so is the recommended choice when persisting using the JDO2 API. The enhancement process adds the necessary methods to the users class in order to implement PersistenceCapable.



The example above doesn't show all PersistenceCapable methods, but demonstrates that all added methods and fields are prefixed with "jdo" to distinguish them from the users own methods and fields. Also each persistent field of the class will be given a jdoGetXXX, jdoSetXXX method so that accesses of these fields are intercepted so that JDO can manage their "dirty" state.

The MetaData defines which classes are required to be persisted, and also defines which aspects of persistence each class requires. For example if a class has the detachable attribute set to true, then that class will be enhanced to also implement Detachable



Again, the example above doesn't show all methods added for the Detachable interface but the main thing to know is that the detached state (object id of the datastore object, the version of the datastore object when it was detached, and which fields were detached is stored in "jdoDetachedState"). Please see the JDO spec for more details.

If the MetaData is changed in any way during development, the classes should always be recompiled and re-enhanced afterwards.

Byte-Code Enhancement Myths

Some groups (e.g Hibernate) perpetuated arguments against "byte-code enhancement" saying that it was somehow 'evil'. The most common were :-

  • Slows down the code-test cycle. This is erroneous since you only need to enhance just before test and the provided plugins for Ant, Eclipse and Maven all do the enhancement job automatically and rapidly.
  • Is less "lazy" than the proxy approach since you have to load the object as soon as you get a pointer to it. In a 1-1 relation you have to load the object then since you would cause issues with null pointers otherwise. With 1-N relations you load the elements of the collection/map only when you access them and not the collection/map. Hardly an issue then is it!
  • Fail to detect changes to public fields unless you enhance your client code. Firstly very few people will be writing code with public fields since it is bad practice in an OO design, and secondly, this is why we have "PersistenceAware" classes.

So as you can see, there are no valid reasons against byte-code enhancement, and the pluses are that runtime detection of dirty events on objects is much quicker, hence your persistence layer operates faster without any need for iterative reflection-based checks. The fact is that Hibernate itself also now has a mode whereby you can do bytecode enhancement although not the default mode of Hibernate. So maybe it wasn't so evil after all ?

 



]]>
MySQL #1005 - Can't create table(...) (errno: 121) http://www.aygfsteel.com/beijing2008/archive/2010/05/05/320152.html.Sun.SunWed, 05 May 2010 14:30:00 GMThttp://www.aygfsteel.com/beijing2008/archive/2010/05/05/320152.htmlhttp://www.aygfsteel.com/beijing2008/comments/320152.htmlhttp://www.aygfsteel.com/beijing2008/archive/2010/05/05/320152.html#Feedback0http://www.aygfsteel.com/beijing2008/comments/commentRss/320152.htmlhttp://www.aygfsteel.com/beijing2008/services/trackbacks/320152.html阅读全文

]]>
è…¾è®¯æ€Žä¹ˆèƒ½è¿™æ øP¼Ÿhttp://www.aygfsteel.com/beijing2008/archive/2010/04/22/319069.html.Sun.SunThu, 22 Apr 2010 02:01:00 GMThttp://www.aygfsteel.com/beijing2008/archive/2010/04/22/319069.htmlhttp://www.aygfsteel.com/beijing2008/comments/319069.htmlhttp://www.aygfsteel.com/beijing2008/archive/2010/04/22/319069.html#Feedback3http://www.aygfsteel.com/beijing2008/comments/commentRss/319069.htmlhttp://www.aygfsteel.com/beijing2008/services/trackbacks/319069.html腾讯˜q™ä¹ˆå¤§çš„企业åQŒQQ½Iºé—´çš„æ—¥å¿—竟然不控制多次提交的问题ã€?br /> 中国的公叔Rƒ½˜q™ä¹ˆ‹¹®èºã€?br /> ž®å…¬åæ€Ø“了生存还能理解ã€?br /> 腾讯˜q™ä¹ˆå¤§çš„¾UÏx–¯è¾‘Ö…‹ä¸Šå¸‚企业也这æ ?..



]]>
关于struts动态form_DynaActionFormhttp://www.aygfsteel.com/beijing2008/archive/2010/04/20/318862.html.Sun.SunTue, 20 Apr 2010 07:56:00 GMThttp://www.aygfsteel.com/beijing2008/archive/2010/04/20/318862.htmlhttp://www.aygfsteel.com/beijing2008/comments/318862.htmlhttp://www.aygfsteel.com/beijing2008/archive/2010/04/20/318862.html#Feedback1http://www.aygfsteel.com/beijing2008/comments/commentRss/318862.htmlhttp://www.aygfsteel.com/beijing2008/services/trackbacks/318862.html今天有äh问前台表单form动态生成,后台使用DynaActionForm怎么用,说了他没懂,ž®±å†™äº†ä¸ªä¾‹å­ã€?br />
Action配置

<action
      attribute
="testMappingForm"
      input
="/jsp"
      name
="testMappingForm"
      path
="/testMapping"
      scope
="request"
      type
="com.modo.struts.action.TestMappingAction" />


ActionForm配置

<form-bean name="testMappingForm" type="org.apache.struts.action.DynaActionForm">
        
<form-property name="fnames" type="java.util.HashMap"></form-property>
    
</form-bean>

è¯äh³¨æ„name属性,˜q™ä¸ªå±žæ€§åŽé¢è¦ç”¨åˆ°ã€?br />

然后是页面index.jsp,˜q™é‡Œåªæ¨¡æ‹ŸåЍæ€?/p>

<html:form action="/testMapping.do" method="post">
   
<%
   
for(int i=0;i<5;i++){   
   
%>
           
<html:text property="<%="fnames(name_"+i+")"%>" value="<%="gangye_"+i%>"></html:text><br>
   
<%}%>
   
<br>
   
<html:submit value="Submit Form" />
   
</html:form>

è¯äh³¨æ„html:textçš„property标签ã€?br />

index.jsp效果如下

后台Action

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
            HttpServletResponse response) {
        HashMap   hm
=(HashMap)((DynaActionForm)form).get("fnames");
        Iterator it 
= hm.entrySet().iterator();
        Map.Entry entry 
= null;
        
while(it.hasNext()){
            entry  
= (Map.Entry)it.next();
            System.out.println(entry.getKey() 
+ " = " + entry.getValue());
        }
        
return null;
    }


输出表单™å?/p>

name_4 = gangye_4
name_0 
= gangye_0
name_2 
= gangye_2
name_1 
= gangye_1
name_3 
= gangye_3



 



 



]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ÇåÔ­| ¶«ÎÚ| ·áÄþ| èµÉ½ÏØ| ¶¨ÄÏÏØ| ¶ýÔ´ÏØ| Íò°²ÏØ| ËçµÂÏØ| ÖÓÏéÊÐ| ÓÀÆ½ÏØ| ²ýÄþÏØ| ¹àÄÏÏØ| ÁÙ½­ÊÐ| ½´¨ÏØ| ¸»Æ½ÏØ| ÓàÇìÏØ| ´ó·½ÏØ| ÌìÃÅÊÐ| ÂÞÔ´ÏØ| ÈêÖÝÊÐ| á·É½ÏØ| ÎýÁÖºÆÌØÊÐ| µü²¿ÏØ| ¡»ØÏØ| °¢À­ÉÆÃË| ä¬ÄÏÊÐ| ÉäºéÏØ| º£ÃÅÊÐ| ÓÏÑô| ³¤Ô«ÏØ| ºÓ±±Çø| Ïå·ÚÏØ| ¾¸Î÷ÏØ| ÏãºÓÏØ| ®½­ÏØ| ¶«°²ÏØ| ÌìÃÅÊÐ| ÐûÍþÊÐ| ÕòÔ¶ÏØ| »ô³ÇÏØ| Áù°²ÊÐ|