Использование стояков 1 с индикатором выполнения dwr - PullRequest
0 голосов
/ 09 марта 2012

Я сейчас пытаюсь добавить индикатор прогресса на мою веб-страницу. Так как я использую стойку 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>

распорка-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 голосов
/ 10 марта 2012

Включили ли вы необходимый файл engine.js в ваш HTML?Начиная с документы :

engine.js жизненно важны для DWR, поскольку он используется для маршалинга вызовов из динамически генерируемой функции JavaScript интерфейса, поэтому он необходим везде, где используется DWR.

Все функции engine.js имеют префикс dwr.engine.

Файл engine.js

Все страницы DWR нуждаются в следующем элементе сценария для импорта основного механизма DWR.

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