<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    StevenBot-Saltsam

    眼睛能裝下世界,為何卻裝不下眼淚? 一只風箏一輩子只為一根線冒險。 那不是一場游戲,為何總有一根線牽著心懷,隱隱作疼? 那不是一段邂逅,為何飄在橋上的影子,總纏進夢鄉? 那不是一個夢境,為何你的溫柔私語,總是不經意的響起?

    導航

    <2011年11月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    統計

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    datas link

    OSChinal Sources codes Library

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    Spring 學習

    1.spring屬性的注入配置

    1. 1.      屬性的注入配置

    Bean文件的配置,即為bean的各屬性賦值

     

    <bean id="sone" class="edu.yzu.entity.Student" init-method="initialMethod" parent="sbean" >

    <!—- init-method指定了該bean類初始化后用來驗證屬性是否合法,該方法會在屬性設置結束后調用 ,

    Parent是指本bean中的一些屬性如果沒有初始化則會以sbean中的相同屬性名的對應值來初始化--!>

           <property name="id" value="10002" />

           <property name="name" value="Rose" />

           <property name="sex" value="boy" />

           <property name="age" value="23" />

           <property name="birthday" value="1980-10-24" />

           <property name="emails">

               <list>

                  <value>123@qq.com</value>

                  <value>456@sina.com</value>

                  <value>789@163.com</value>

               </list>

           </property>

           <property name="phones">

    //list或者數組類型的屬性注入

               <list>

                  <value>13657164847</value>

                  <value>15901083941</value>

                  <value>13797502137</value>

               </list>

           </property>

           <property name="scores">

    //為map指定 key value屬性指定一般類型,key-ref  value-ref指定的是bean引用

               <map>

                  <entry key="math" value="97" />

                  <entry key="chinese" value="96" />

                  <entry key="englist" value="92" />

               </map>

           </property>

     

           <property name="classmates">

    //set類型的屬性注入

               <set>

                  <ref local="sone" />

    <!-- 表時此值并非String int 等原始類型,local指明這個值是本配置文件的一個bean -à

                  <ref local="myself" />

               </set>

           </property>

        </bean>

    1. 非自動類型轉換

    對bean屬性的注入過程中,如果一些類型不能注入,則可以類型轉換,自定義轉換該類型的轉換器,如上面的birthday屬性是日期性的,spring 不能自動注入該類型,則自定義轉換器如下:

    public class myDateEditor extends PropertyEditorSupport {

        @Override

        public void setAsText(String text) throws IllegalArgumentException {

           try {

               SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");

               Date date = format.parse(text);

               setValue(date);

           } catch (ParseException e) {

               e.printStackTrace();

               new IllegalAccessException(e.getMessage());

           }

        }

    }

     

     

     

     

     

     

    配置文件如下 :只要這樣配置后spring 遇到java.util.Date類型后會自動調用上面的轉換器,注入bean屬性

     

        <bean id="myeditor"

           class="org.springframework.beans.factory.config.CustomEditorConfigurer">

           <property name="customEditors">

               <map>

                  <entry key="java.util.Date">

                      <bean id="dateEditor" class="edu.yzu.editor.myDateEditor" />

                  </entry>

               </map>

           </property>

        </bean>

    2.spring非自動類型轉換

    對bean屬性的注入過程中,如果一些類型不能注入,則可以類型轉換,自定義轉換該類型的轉換器,如上面的birthday屬性是日期性的,spring 不能自動注入該類型,則自定義轉換器如下:

    public class myDateEditor extends PropertyEditorSupport {

        @Override

        public void setAsText(String text) throws IllegalArgumentException {

           try {

               SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");

               Date date = format.parse(text);

               setValue(date);

           } catch (ParseException e) {

               e.printStackTrace();

               new IllegalAccessException(e.getMessage());

           }

        }

    }

     

    3.spring中面向切面的使用

    1. BeanPostProcessor接口的使用

     

    BeanPostProcessor接口用在bean生成后將放入ApplicationContext前進行一些必要的處理,它有兩個方法,分別在調用bean配置的init-method前后執行(如果配置了的話),本接口的實現類常常結合動態代理生成bean的代理類型:

    class MyProxyClass {

        private Object target;

     

        public MyProxyClass(Object target) {

           this.target = target;

        }

     

        public Object getNewProxy() {

           return Proxy.newProxyInstance(target.getClass().getClassLoader(),

                  target.getClass().getInterfaces(), new InvocationHandler() {

     

                      public Object invoke(Object proxy, Method method,

                             Object[] args) throws Throwable {

                         System.out.println("you can do something here!!");

                         Object obj = method.invoke(target, args);

                         System.out.println("you can do something here!!");

                         return obj;

                      }

                  });

        }

    }

     

    接口使用如下,接口使用如下,一般只要在postProcessAfterInitialization里面配置后即可(事實上這在實際開發中很少使用,一般會使用spring提供的組件,但其底層是使用這些的)

    public class MyBeanPostProcessor implements BeanPostProcessor {

     

        public Object postProcessAfterInitialization(Object bean, String id)

               throws BeansException {

          

    //參數Object 為生成的bean id 為該bean在配置文件中的id,這里我們一該用動態代理來生成一個代理對象返回

           return new  MyProxyClass(bean).getNewProxy();

        }

     

        public Object postProcessBeforeInitialization(Object bean, String id)

               throws BeansException {

                  return bean;

        }

     

    }

     

    配置如下:

        <bean id="myprocessor" class="edu.yzu.filter.MyBeanPostProcessor" />

    如上配置后spring 會自動為每個生成的bean生成相應的代理,如上代理的的效果為在調用每個方法找對應此bean的id,,,我們可以使用動態代理來生成

     

    1. 對bean中方法的方法的攔截(既自定義的Advice)共有四種,分別為四個接口,繼承此四個接口后分別實現對應的方法:

    MethodBeforeAdvice(在方法調用之前)

        public void before(Method method, Object[] args, Object target)

               throws Throwable {

    //要在方法調用之前執行的操作

        }

    MethodInterceptor (在方法調用之前之后都可以用此接口中的一個方法得到)

        AfterReturningAdvice(在方法返回以后)

        public void afterReturning(Object returnValue, Method method, Object[] args,

               Object targer) throws Throwable {

           //在方法調用之后 要執行的操作

        }

        ThrowsAdvice(在方法拋出異常以后會攔截)

    public void afterThrowing(Exception e) {

           Session session=HibernateSessionFactory.getSessionFactory().getCurrentSession();

           session.getTransaction().rollback();

        }

    注意:ThrowsAdvice接口中沒有任何方法,但是使用此接口必須給出的方法簽名為:afterThrowing,它可以重載多次,當相應的異常發生后調用對應的處理方法

    使用:在配置文件中配置自定義的Advice,比如我有一個 TranstionManager類,它用來控制事務,實現了MethodInterceptor,如下!

    public class TranstionManager implements MethodInterceptor {

        public Object invoke(MethodInvocation invocation) throws Throwable {

           Session session = HibernateSessionFactory.getSessionFactory()

                  .getCurrentSession();

           Transaction trans = session.getTransaction();

           trans.begin();

           Object obj = invocation.proceed();

           trans.commit();

           return obj;

        }

    }

    文件的配置如下:

        <bean id="transtionmanager" class="edu.yzu.filter.TranstionManager"/>

    另外有一個bean即為攔截的目標對象,為其生成代理對象,該bean的配置如下:

    <bean id="userDao" class="edu.yzu.dao.impl.UserDaoImpl"/>

       

        <bean id="userBiz" class="edu.yzu.biz.impl.UserBizImpl">

        <property name="userDao">

        <ref local="userDao"/>//將userDao注入到到UserBizImpl中

        </property>

        </bean>

    下面為userBiz生成代理對象的bean使用時用ApplicationContext對象實例applicationContext調用代理對象的方法為:applicationContext.getBean(“userBizImpl”);

    <bean id="userBizImpl" class="org.springframework.aop.framework.ProxyFactoryBean">

        <property name="target">

        <ref local="userBiz"/>//指定給哪個目標對象建立代理

        </property>

        <property name="interceptorNames">

        <list>

        <value>transtionmanager</value>

    //使用的Advice, 可以配置多個

        </list>

        </property>

        <property name="interfaces">

        <list>

        <value>edu.yzu.biz.UserBiz</value>

    //指定要代理目標對象的哪個的接口

        </list>

        </property>

        </bean>

    (上面是為實現接口的類生成代理) 缺點:一旦為一個bean指定代理,則bean中的所有方法都會被代理,不能指定為特定的方法指定代理,沒有體現面向切面的特點!優點,依然可以拿到代理前的bean對象。如果沒有實現任何接口,則不必要加name=”interfaces” 的項,但要加<property name="proxyTargetClass">

           <value>true</value>

           </property>表示這個bean沒有實現任何接口,spring為它生成它的子類(cglib實現)

     

    1. 切面=切入點+切入內容。既為:aspect=pointcut+advice  spring 中切面用advisor表示,可以在配置文件中配置。切入的內容即為我們自定義的類型,它實現四個接口的的任何一個。切入點即為要切入內容的目標類型的方法:由此可知切面的配置也要配置這兩項!

    l         為一個bean配置一個advisor ,一個advisor里面只能有一個advice,但是可以給此advisor指定幾個切入點,方法如下:

         <bean id="myadvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">

        <property name="advice">

        <ref local="transtionmanager"/>

        </property>

        <property name="mappedNames">

        <list>

        <value>addProduct</value>

        <value>deleteProductById</value>

        <value>getAllProducts</value>

        <value>getProduct</value>

        <value>getProducts</value>

        <value>updateProduct</value>

        </list>

        </property>

    </bean>

    這個Advisor只指定的advice為transtionmanager 為切入的內容,切入點為list只的幾個方法名,既所代理的bean中,只有方法名相同的才能被切入。這正是面向切面的思想所在,advisor用法如下:

    <bean id="productBizImpl" class="org.springframework.aop.framework.ProxyFactoryBean">

        <property name="target">

        <ref local="productBiz"/>

        </property>

        <property name="interceptorNames">

        <list>

        <value>myadvisor</value>

        <value>exceptionadvice</value>//這個是沒有包裝的advice,配置如下:

    //<bean id="exceptionadvice" class="edu.yzu.filter.ExceptionFilter"/>

        </list>

        </property>

        <property name="interfaces">

        <list>

        <value>edu.yzu.biz.ProductBiz</value>

        </list>

        </property>

    </bean>

    這樣做的好處體現了面向切面的思想,既給指定的切入點切入想要執行的內容。

     

    下面是為多個bean指定多個advisor的方法,似乎也是最為常用的。

     

    l         第一種:為多個bean同時指定多個advisor

    Advisor配置不變,如下

         <bean id="myadvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">

        <property name="advice">

        <ref local="transtionmanager"/>

        </property>

        <property name="mappedNames">

        <list>

        <value>addProduct</value>

        <value>deleteProductById</value>

        <value>getAllProducts</value>

        <value>getProduct</value>

        <value>getProducts</value>

        <value>updateProduct</value>

        </list>

        </property>

    </bean>

     

    指定代理的目標對象的配置如下,既為哪些目標bean生成代理

        <bean id="autoProxy"

           class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">

           <property name="interceptorNames">

               <list>

                  <value>myadvisor</value>

                  <value>exceptionadvisor</value>

    //自定義的advisor

               </list>

           </property>

           <property name="beanNames">

               <list>

                  <value>userBiz</value>

                  <value>productBiz</value>

    //生成代理的目標對象

               </list>

           </property>

        </bean>

    優點:可以同時為多個bean指定多個advisor。不足,因為是自動的為指定的bean生成代理,所以不能再得到原來的bean,只能拿到代理后的bean對象

     

    l         第二種:為多個bean同時指定多個advisor

    完整配置如下:

        <bean id="userBiz" class="edu.yzu.biz.impl.UserBizImpl">

           <property name="userDao">

               <bean id="userDao" class="edu.yzu.dao.impl.UserDaoImpl" />

           </property>

        </bean>

        <bean id="productBiz" class="edu.yzu.biz.impl.ProductBizImpl">

           <property name="productDao">

               <bean id="productDao" class="edu.yzu.dao.impl.ProductDaoImpl" />

           </property>

    </bean>

     

    <bean id="myadvisor"

           class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">

           <property name="advice">

               <bean id="transtionmanager" class="edu.yzu.filter.TranstionManager" />

           </property>

           <property name="mappedNames">

               <list>

                  <value>addProduct</value>

                  <value>deleteProductById</value>

                  <value>getAllProducts</value>

                  <value>getProduct</value>

                  <value>getProducts</value>

                  <value>updateProduct</value>

               </list>

           </property>

        </bean>

     

        <bean id="exceptionadvice"

           class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">

           <property name="advice">

               <bean id="exadvice" class="edu.yzu.filter.ExceptionFilter" />

           </property>

           <property name="mappedNames">

               <list>

                  <value>addProduct</value>

                  <value>deleteProductById</value>

                  <value>getAllProducts</value>

                  <value>getProduct</value>

                  <value>getProducts</value>

                  <value>updateProduct</value>

               </list>

           </property>

    </bean>

     

    <bean id="defaultautoproxy"

        class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/>

    優點,可以同時多個bean指定多個,advisor,缺點:可控性差。會為整個配置文件的所有的非advisor的bean都指定所有的advisor。注意事項,不必要的bean不要放在一個配置文件中,或者放在另外一個bean的內部,但是這樣的bean對外界不可見,即不可用ApplicationContext的對象通過getBean得到!(實際用得不多)

    6.spring中事務管理

    聲明式的事務管理(Declarative transaction management): 
    <bean id="dataSource"

           class="org.apache.commons.dbcp.BasicDataSource">

           <property name="driverClassName">

               <value>oracle.jdbc.OracleDriver</value>

           </property>

           <property name="url">

               <value>jdbc:oracle:thin:@localhost:1521:XE</value>

           </property>

           <property name="username">

               <value>rose</value>

           </property>

           <property name="password">

               <value>aier</value>

           </property>

        </bean>

     

        <bean id="sessionFactory"

           class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

           <property name="dataSource">

               <ref bean="dataSource" />

           </property>

           <property name="hibernateProperties">

               <props>

                  <prop key="hibernate.dialect">

                      org.hibernate.dialect.Oracle9Dialect

                  </prop>

                  <prop key="hibernate.show_sql">true</prop>

                  <prop key="hibernate.format_sql">true</prop>

                  <prop key="hibernate.jdbc.batch_size">15</prop>

               </props>

           </property>

           <property name="mappingResources">

               <list>

                  <value>com/kettas/shops/entity/Entity.hbm.xml</value>

               </list>

           </property>

        </bean>

     

        <bean id="hibernatetemplate"

           class="org.springframework.orm.hibernate3.HibernateTemplate">

           <property name="sessionFactory">

               <ref bean="sessionFactory" />

           </property>

        </bean>

     

        <!--

           dao的bean

           +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

        -->

        <bean id="userDao" class="edu.yzu.shops.dao.impl.UserDaoImpl">

           <property name="hibernateTemplate">

               <ref local="hibernatetemplate" />

           </property>

        </bean>

     

        <!--

           biz的配置

           +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

        -->

        <bean id="userBiz" class="edu.yzu.shops.biz.impl.UserBizImpl">

           <property name="userDao">

               <ref local="userDao" />

           </property>

        </bean>

     

        <!--

           事物控制

           +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

        -->

        <bean id="transactionManager"

           class="org.springframework.orm.hibernate3.HibernateTransactionManager">

           <property name="sessionFactory">

               <ref bean="sessionFactory" />

           </property>

        </bean>

     

        <bean id="transactionInterceptor"

           class="org.springframework.transaction.interceptor.TransactionInterceptor">

           <property name="transactionManager">

               <ref bean="transactionManager" />

           </property>

           <property name="transactionAttributes">

               <props>

                  <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>

                  <prop key="update*">

                      PROPAGATION_REQUIRED,-Exception

                  </prop>

                  <prop key="delete*">

                      PROPAGATION_REQUIRED,-Exception

                  </prop>

               </props>

           </property>

        </bean>

     

        <!-- 有兩種方式可以給一個bean加上事務控制,一種為自動創建。

           另一種是指明創建 .第一種為:-->

        <bean id="autoProxy"

           class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">

           <property name="beanNames">

               <list>

                  <value>userBiz</value>

                  <value>productBiz</value>

                  <value>orderBiz</value>

                  <value>orderItemBiz</value>

                  <value>categoryBiz</value>

               </list>

           </property>

           <property name="interceptorNames">

               <list>

                  <value>transactionInterceptor</value>

               </list>

           </property>

        </bean>

    <!-- 第二種方法為下面,顯然表比較少時用第二種可以,但是當表比較多時顯然第一種更合適。 -->

        <bean id="userBizProxy"

           class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

           <property name="target">

               <ref bean="userBiz" />

           </property>

           <property name="transactionManager">

               <ref bean="transactionManager" />

           </property>

           <!-- 下面的設置表時要代理的不是類本身,而是其實現的接口 -->

           <property name="proxyTargetClass">

               <value>false</value>

           </property>

           <property name="proxyInterfaces">

               <list>

                  <value>edu.yzu.biz.UserBiz</value>

               </list>

           </property>

           <property name="transactionAttributes">

               <props>

                  <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>

                  <prop key="update*">

                      PROPAGATION_REQUIRED,-Exception

                  </prop>

                  <prop key="delete*">

                      PROPAGATION_REQUIRED,-Exception

                  </prop>

               </props>

           </property>

        </bean>

     

     

     

     

        <!--

           +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

            -->

    1. 

    2. 

    3. 

    4. 

    5. 

    6. 

    7. <bean

      class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

      <!-- 配置事務管理器 -->

      <property>

       <ref bean="transactionManager" />

      </property>

      <!-- 此屬性指定目標類本身是否是代理的對象,如果目標類沒有實現任何類,就設為true代表自己 -->

      <property>

       <value>false</value>

      </property>

      <property>

       <value> com.test.service.userManageService</value>

      </property>

      <!-- 目標bean -->

      <property>

       <ref bean="userManageService"/>

      </property>

      <!-- 配置事務屬性 -->

    <property>

       <props>

    <prop key="delete*">PROPAGATION_REQUIRED</prop>

    <prop key="add*">PROPAGATION_REQUIRED</prop>

    <prop key="update*">PROPAGATION_REQUIRED</prop>

    <prop key="save*">PROPAGATION_REQUIRED</prop>

    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>

    </props>

    </property>

    </bean>

     

     

    利用繼承的思想簡化配置,適合相對比較多的模塊時使用。

     <bean id="transactionBase"  

      class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"  

      lazy-init="true" abstract="true">   

      <!-- 配置事務管理器 -->   

      <property name="transactionManager">   

       <ref bean="transactionManager" />   

      </property>   

      <!-- 配置事務屬性 -->   

      <property name="transactionAttributes">   

       <props>   

    <prop key="delete*">PROPAGATION_REQUIRED</prop>   

    <prop key="add*">PROPAGATION_REQUIRED</prop>   

    <prop key="update*">PROPAGATION_REQUIRED</prop>   

    <prop key="save*">PROPAGATION_REQUIRED</prop>   

    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>   

    </props>   

    </property>

    </bean>   

    8.<bean

      class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"

      lazy-init="true" abstract="true">

      <!-- 配置事務管理器 -->

      <property>

       <ref bean="transactionManager" />

      </property>

      <!-- 配置事務屬性 -->

      <property>

       <props>

    <prop key="delete*">PROPAGATION_REQUIRED</prop>

    <prop key="add*">PROPAGATION_REQUIRED</prop>

    <prop key="update*">PROPAGATION_REQUIRED</prop>

    <prop key="save*">PROPAGATION_REQUIRED</prop>

    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>

    </props>

    </property>

    </bean>


    而具體的模塊可以簡單的這樣配置。只要指明它的parent(父類)就可以了。父類一般把abstract="true",因為在容器加載的時候不需要初始化,等到用的時候再有它的子類調用的時候,再去初始化。

    Java代碼

    <bean id="userManageServiceProxy" parent="transactionBase" >   

      <property name="target">   

      <ref bean="userBiz"/>   

      </property>   

    </bean>  <bean parent="transactionBase" >

      <property>

      <ref bean="userManageService"/>

      </property>

    </bean>

    8.DWR與spring的整合簡單使用

    1. 文件的配置。在web.xml中配置dwr的攔截器,為一個Servlet,配置如下:

           <servlet>

           <servlet-name>dwrServlet</servlet-name>

           <servlet-class>

               org.directwebremoting.servlet.DwrServlet

           </servlet-class>

           <init-param>

               <param-name>debug</param-name>

               <param-value>true</param-value>

           </init-param>

        </servlet>

        <servlet-mapping>

           <servlet-name>dwrServlet</servlet-name>

           <url-pattern>/dwr/*</url-pattern>

        </servlet-mapping>

    1. 在dwr.xml文件中的配置

          <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE dwr PUBLIC

        "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"

        "http://getahead.org/dwr/dwr20.dtd">

    <dwr>

        <allow>

           <create javascript="JTestBean" creator="new">

               <param name="class" value="edu.yzu.dwr.TestBean"/>

           </create>

           <convert  converter="bean" match="edu.yzu.dwr.Student"/> 

               <!--

             <convert converter="bean" match="edu.yzu.dwr.Teacher"/>     

             若是在方法簽名或者返回類型中用到了自定義類型,則要加上這一句,即給自定義類型一個轉換器,在客戶端會自動被轉換為js對象   -->

        </allow>

    <!—下面也有必要配置一下,即當所使用的方法簽名有用到泛型集合時要指定(往往不配置也沒沒有什么錯誤)-- >

        <signatures>

           <![CDATA[

              import java.util.* ;

              import edu.yzu.entity.*.*;

              public List<User> queryAllUsers() ;

           ]]>

        </signatures>

    1. 在所使用的頁面引用dwr動態生成的js文件!

    <script src="/ajax/dwr/interface/JTestBean.js"></script>

    <script src="/ajax/dwr/engine.js"></script> 

    如果有必要還可以引用dwr提供的一個util.js的工具包

     

    1. dwr整合spring的配置

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE dwr PUBLIC

        "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"

        "http://getahead.org/dwr/dwr20.dtd">

     

    <!-- dwr與spring的整合

    create標簽的creator值為spring表時dwr在不創建對象,而是使用

    spring托管的對象。

    它的param標簽的name屬性為beanName,value屬性的值與spring中bean

    的id值對應。

     -->

    <dwr>

        <allow>

           <create javascript="userBiz" creator="spring">

               <param name="beanName" value="userBiz" />

           </create>

           <convert converter="bean" match="edu.yzu.shops.entity.User" />

        </allow>

    </dwr>


    posted on 2011-11-16 01:16 Steven_bot 閱讀(541) 評論(0)  編輯  收藏 所屬分類: study logger


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲中文字幕无码mv| 精品久久久久久亚洲综合网| 久久精品人成免费| 亚洲综合无码一区二区| 99久久精品免费精品国产| 亚洲男女一区二区三区| 999久久久免费精品国产| 亚洲av午夜精品无码专区| 岛国大片免费在线观看| 日本系列1页亚洲系列| 91麻豆国产自产在线观看亚洲| 女同免费毛片在线播放| 久久久无码精品亚洲日韩按摩| 四虎免费影院ww4164h| 亚洲精品第一国产综合亚AV| 亚洲精品动漫人成3d在线| 国内精品免费在线观看| 国产在线观看免费av站| 久久亚洲精品成人综合| 国产免费看JIZZ视频| 羞羞视频免费网站含羞草| 亚洲精品无码专区久久久| 国产电影午夜成年免费视频| 久久亚洲色WWW成人欧美| 中文字幕亚洲天堂| 蜜臀AV免费一区二区三区| 亚洲AV成人无码久久WWW| 亚洲欧洲国产精品香蕉网| 啦啦啦中文在线观看电视剧免费版 | 7m凹凸精品分类大全免费| 亚洲卡一卡二卡乱码新区| 亚洲成aⅴ人片久青草影院| 免费h视频在线观看| 国产午夜亚洲精品国产| 亚洲一区无码精品色| **aaaaa毛片免费同男同女| 亚洲aⅴ天堂av天堂无码麻豆 | 国产精品免费看久久久香蕉| 精品亚洲AV无码一区二区三区 | 亚洲国产精品无码久久久秋霞1| 亚洲精品无码av人在线观看|