总结一下ajax框架dwr实用

      公司用的开源框架是webwork、spring、ibatis和freemarker以及dwr,平时后台应用很少用dwr调用。现在总结一下dwr在项目中使用的步骤:

1、相关jar包需要加入到项目中

2、在web.xml配置响应dwr请求的servlet

    <servlet>

       <servlet-name>dwr-invoker</servlet-name>

       <servlet-class> org.directwebremoting.servlet.DwrServlet </servlet-class>

       <init-param>

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

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

       </init-param>

       <init-param>

         <param-name>allowGetForSafariButMakeForgeryEasier</param-name>

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

       </init-param>

       

       <init-param>

          <param-name>logLevel</param-name>

          <param-value>warn</param-value>

       </init-param>       

       <init-param>

         <param-name>crossDomainSessionSecurity</param-name>

         <param-value>false</param-value>

       </init-param>

       <init-param>

         <param-name>allowScriptTagRemoting</param-name>

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

       </init-param>

       <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet-mapping>

       <servlet-name>dwr-invoker</servlet-name>

       <url-pattern>/sltdwr/*</url-pattern>

    </servlet-mapping> 

3、在分层的架构中实现每层的业务逻辑

4、新建dwr.xml配置文件,添加客户端可调用服务器端的对象

 

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

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

</create>

<convert converter="bean" match="com.b2b.app.portal.webapp.model.productgrade.ProductGrade"/>

若需要在客户端的回调函数中使用对象,必须配置convert的信息。

 

5、在配置文件对每层涉及的对象进行配置,主要用的是spring的ioc,以下是service层例子代码:

 

<bean id="productGradeAction"              

           class="com.b2b.app.portal.webapp.action.productgrade.ProductGradeAction">

<property name="productGradeManager" ref="productGradeManager"></property>

</bean>

<bean id="productGradeManager" parent="txProxyTemplate">

     <property name="target">

     <bean class="com.b2b.app.portal.service.impl.productgrade.ProductGradeManagerImpl"    

                         autowire="byName">

     <property name="productGradeDao" ref="productGradeDao"/>    

     </bean>

     </property>

</bean>

6、在js文件中用上面的productGradeAction对象对服务器端进行异步调用

 

function getAllCountByPid(pid){

productGradeAction.getAllCountByPid(pid, showAllCountAndAvgGrade);

}

其中showAllCountAndAvgGrade为回调函数,在此可以对客户端页面的展示进行处理

7、在客户端请求的页面中加入dwr的相关js脚本

 

<script type="text/javascript" language="javascript"

              src="http://192.168.1.42:8081/portal/static/js/ratingsys.js"></script> 

<script type="text/javascript" src="${model.context?    

                      if_exists}/sltdwr/interface/productGradeAction.js"></script>  

<script type="text/javascript" src="${model.context?if_exists}/sltdwr/engine.js"></script>  

<script type="text/javascript" src="${model.context?if_exists}/sltdwr/util.js"></script>  

 

 

8、可以用http://192.168.1.42:8081/portal/stldwr这个路径来测试我们的dwr调用是否配置成功

 

 

 

你可能感兴趣的:(框架,Ajax,bean,servlet,DWR)