struts2 struts2-namespace

Struts2 ignora un patrón particular



struts2-namespace (3)

probablemente pueda agregar un patrón de exclusión en su struts.xml, algo así como

<struts> <constant name="struts.action.excludePattern" value="appName/checking"/> </struts>

lea aquí y encuentre excludePattern para más información.

Estoy usando strust2 para el desarrollo de mi aplicación web. Mi archivo struts.xml será como:

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="default" extends="struts-default" namespace ="/"> <action name="signup"> <result>/check.jsp</result> </action> </package> </struts>

y mi archivo web.xml será algo así como:

<?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>sample</display-name> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>My WS</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.dr1.dr2</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>My WS</servlet-name> <url-pattern>/checking</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>

y ahora, si tengo acceso como: http: // localhost: 8080 / appName / va a mi acción de registro perfectamente. Pero cuando intenté acceder como http: // localhost: 8080 / appName / checking (para webservices), incluso busca en struts.xml y recibe un mensaje de error como:

HTTP Status 404: no se ha asignado ninguna acción para verificar el espacio de nombres / nombre de acción. .. incluso después de definir esto en web.xml ..

¿Hay alguna manera de excluir un patrón en struts2 , de modo que cuando pulso http: // localhost: 8080 / appName / checking , no debe mirar la acción de struts, debe llamar a mi ruta de página predeterminada definida en el archivo web.xml.

Gracias..


<constant name="struts.action.excludePattern" value="appName/checking"/>

las exclusiones explícitas de excludePattern constantes (desde 2.1.7)


esto podría funcionar:

<!-- exclude pattern --> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/struts/*</url-pattern> </filter-mapping>

un examen de acción: