Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo consigue la acción de struts que urlrewrite reescriba la URL?

¿Cómo consigue la acción de struts que urlrewrite reescriba la URL?

En primer lugar, se necesitan dos paquetes de software, uno es SmartUrls (complemento Struts2, dirección de descarga: /p/smarturls-s2/downloads/list) y el otro es urlrewritefilter (dirección de descarga: http://tuckey.org /urlrewrite/ dist/urlrewritefilter-2.6.zip).

Para eliminar el sufijo struts2, puede configurar el filtro de esta manera: 1. lt; filtergt;

2. lt; filter-namegt;/filter-namegt; /p >

3.lt;filter-classgt;org.texturemedia.smarturls.SmartURLsFilterlt;/filter-classgt; 4.lt;/filtergt;5 Utilice este filtro para reemplazar el filtro principal FilterDispatcher de struts2, no es necesario. preocuparse más por struts2 Ya no funciona porque este filtro hereda de FilterDispatcher. Al mismo tiempo, agregue struts.action.extension= en struts.properties y no establezca ningún valor.

Luego configure UrlRewriteFilter, como se muestra a continuación 1. lt; filtergt;

2. lt; urlRewriteFilterlt;/filter-namegt; lt; filter-classgt; org.tuckey.web.filters.urlrewrite.UrlRewriteFilterlt; /filter-classgt;

4. lt /filtergt; configurarse primero. Luego está la reescritura de urlrewritefilter. Consulte la documentación para saber cómo usarlo, así que no entraré en detalles aquí. Al utilizar la reescritura, filterChain descubrió que solo había un urlrewritefilter y los recursos solicitados no se enviaron a través de smartUrls. El resultado fue, naturalmente, un error 404. Entonces verifiqué el código fuente de urlrewritefilter y descubrí que si la URL se reescribe correctamente, llamará al método de reenvío de RequestDispatcher para reenviar el recurso, y si la reescritura no tiene éxito o no se reescribe, se llamará a filterChain.dofilter. Por lo tanto, el mapeo de filtros de struts2 debe configurarse así: 1.lt; filter-mappinggt;

2.lt; filter-namegt;/filter-namegt;

3.lt; url-patterngt;/*lt;/url-patterngt;

4.lt;dispatchergt;FORWARDlt;/dispatchergt;

5.lt;/filter- mappinggt;

Eso es

Entonces está bien.