使用带有dwr进度条的struts 1

时间:2012-03-09 04:33:54

标签: java ajax struts dwr

我现在正在尝试在我的网页中添加进度条。 由于我使用strut 1,所以我采用了以下站点中建议的方法:

http://kencochrane.blogspot.com/2006/03/ajax-struts-file-upload-progress-meter.html

我还访问了dwr官方网站以检查最新版本,并稍稍更新代码。

我已将我需要的文件复制到我的项目中并更新了所需的文件(包括web.xml和struts-config.xml),

然而,当我运行我的网站时,我从firebug得到了这个错误:

  

dwr.engine._getObject不是函数

以前有人遇到过这种情况吗? 我可以做些什么来解决这个问题? 我怀疑它与我的struts-config.xml和web.xml有某种关联,所以下面是我的代码:

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Upload</display-name>

  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>/execute/*</url-pattern>
  </servlet-mapping>

    <servlet>
      <display-name>DWR Servlet</display-name>
      <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>
    </servlet>

    <servlet-mapping>
      <servlet-name>dwr-invoker</servlet-name>
      <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>


</web-app>

的struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
                               "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>

    <form-beans>
        <form-bean name="UploadForm" type="com.struts.UploaderForm"/>
    </form-beans>

    <action-mappings>
        <action path="/Upload" 
            type="com.struts.UploadAction" 
            name="UploadForm" 
            scope="request" 
            input="/Upload.jsp">
        </action>
    </action-mappings>

    <controller multipartClass="com.upload.ExtendedMultiPartRequestHandler" />
    <message-resources parameter="com/struts/Resource"/>

</struts-config>

非常感谢!

1 个答案:

答案 0 :(得分:0)

您是否在HTML中包含了所需的engine.js文件?来自the docs

  

engine.js对DWR至关重要,因为它用来编组来自的DWR   动态生成的界面JavaScript函数,所以需要它   无论在哪里使用DWR。

     

所有engine.js函数都有dwr.engine前缀。

     

engine.js文件

     

所有DWR页面都需要以下脚本元素才能导入主DWR   发动机。

<script type='text/javascript'
    src='/[YOUR-WEB-APP]/dwr/engine.js'>
</script>