У меня проблемы с полосками бобов.Строка аннотации @UrlBinding работает неправильно. 302 status status
Представляем первый http://localhost:9080/profesionales-sanitarios-war/medicos/publico/accesoInterno в браузере вызывает код на 302 состояния и перенаправляет на AccesoActionBean
Второй раз я представить http://localhost:9080/profesionales-sanitarios-war/medicos/publico/accesoInterno в браузере, он возвращает код статуса 200 и работает отлично собирается AccesoInternoActionBean.
Это происходит как с локальным хостом, так и с сервером (разработка, предварительная подготовка и производство).
AccesoActionBean.java:
@UrlBinding("/medicos/publico/acceso" + "/{tipoAcceso}/{destino}")
public class AccesoActionBean extends MedicosBaseActionBean {
[...]
@DontValidate
@DefaultHandler
public Resolution init() {
setSessionField(SESION_CONTADOR_ACCESOS, contadorAccesos);
if(tipoAcceso != null && "popup".equalsIgnoreCase(tipoAcceso)) {
return new ForwardResolution("/WEB-INF/pages/acceso/loginForm.jsp");
} else {
return new ForwardResolution(NavegacionConst.JSP_ACCESO);
}
}
[...]
}
AccesoInternoActionBean.java:
@UrlBinding("/medicos/publico/accesoInterno")
public class AccesoInternoActionBean extends MedicosBaseActionBean {
[...]
@DontValidate
@DefaultHandler
public Resolution init() {
setSessionField(SESION_CONTADOR, contadorAccesos);
return new ForwardResolution(NavegacionConst.JSP_ACCESO_INTERNO);
}
[...]
}
ActionBeans, кажется, закодирован правильно, они похожи на другие, которые перенаправляют на правый боб действия с первым раза. Я искал, я отлаживал, но я не мог найти ответ. Я думаю, что проблема может исходить из какого-то файла конфигурации, как этот web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>${project.build.finalName}</display-name>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>es.sanitas.medicos.stripes.listeners.StartupListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:es/sanitas/medicos/applicationContext-profesionales.xml</param-value>
</context-param>
<context-param>
<param-name>oracle.adf.jsp.provider.5</param-name>
<param-value>oracle.stellent.wcm.javaee.shared.jsp.IdcJspProvider</param-value>
</context-param>
<context-param>
<description>Url del Servidor de Contenidos</description>
<param-name>manageSite</param-name>
<param-value>http://caliban01:8888/</param-value>
</context-param>
<filter>
<display-name>Stripes Filter</display-name>
<filter-name>StripesFilter</filter-name>
<filter-class>net.sourceforge.stripes.controller.StripesFilter
</filter-class>
<init-param>
<param-name>Extension.Packages</param-name>
<param-value>
es.sanitas.stripes.integrations.spring,
net.sourceforge.stripes.integration.spring,
es.sanitas.stripes.i18n
</param-value>
</init-param>
<init-param>
<param-name>ActionResolver.Packages</param-name>
<param-value>
es.sanitas.medicos.stripes.actionbeans,
es.sanitas.medicos.blua.stripes.actionbeans,
es.sanitas.stripes.actionbeans.captcha,
es.sanitas.medicopersonalprofesionales.stripes
</param-value>
</init-param>
<init-param>
<param-name>ExceptionHandler.Class</param-name>
<param-value>es.sanitas.medicos.stripes.handlers.MedicosExceptionHandler</param-value>
</init-param>
<init-param>
<param-name>Interceptor.Classes</param-name>
<param-value>
es.sanitas.medicos.stripes.interceptors.IsLoggedInterceptor,
es.sanitas.stripes.interceptors.AuditBaseInterceptor
</param-value>
</init-param>
<init-param>
<param-name>LocalePicker.Locales</param-name>
<param-value>es_ES:UTF-8,ca_ES:UTF-8,en:UTF-8</param-value>
</init-param>
<init-param>
<param-name>ResourceBundles.BaseNames</param-name>
<param-value>
es.sanitas.medicos.stripesErrors,
es.sanitas.medicos.stripesMessages
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>StripesFilter</filter-name>
<servlet-name>StripesDispatcher</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
<servlet>
<servlet-name>StripesDispatcher</servlet-name>
<servlet-class>net.sourceforge.stripes.controller.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>StripesDispatcher</servlet-name>
<url-pattern>/captcha/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>StripesDispatcher</servlet-name>
<url-pattern>/medicos/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>StripesDispatcher</servlet-name>
<url-pattern>/medicopersonalprofesionales/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/startProfesionalesSanitarios.jspx</welcome-file>
</welcome-file-list>
<mime-mapping>
<extension>js</extension>
<mime-type>application/x-javascript</mime-type>
</mime-mapping>
<mime-mapping>
<extension>css</extension>
<mime-type>text/css</mime-type>
</mime-mapping>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>
<jsp-property-group>
<url-pattern>*.jspf</url-pattern>
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>
<jsp-property-group>
<url-pattern>*.jspx</url-pattern>
<scripting-invalid>false</scripting-invalid>
<is-xml>true</is-xml>
</jsp-property-group>
<jsp-property-group>
<url-pattern>*.tagx</url-pattern>
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>
</jsp-config>
<error-page>
<error-code>500</error-code>
<location>/medicos/error</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/medicos/inicio</location>
</error-page>
</web-app>
Я в поисках решения, но я не мог найти
Я хочу извиниться, если мое письмо не совсем правильно, потому что мой родной язык не английский.
В соответствии с документацией @UrlBinding это правильный синтаксис параметров: «Параметры могут быть встроены в URL-адрес, поместив имя параметра внутри фигурных скобок ({}). Например, @UrlBinding ("/foo/{bar}/{baz} ")} отображает действие на«/foo »и указывает, что параметры« bar »и« baz »могут быть встроены в URL-адрес. В этом случае URL/foo/abc/123 будет ссылаться на действие с баром, установленным на «abc», а baz - «123». Литеральные строки между параметрами могут быть любой строкой ». –
Извините, проблема в том, что когда я печатаю в браузере URL ** .../medicos/publico/accesoInterno ** один раз, приложение возвращает статус ** 302 ** и перенаправляет на ** .../медики/Publico/Acceso **. Если я перепечатаю ** .../medicos/publico/accesoInterno **, он возвращает статус ** 200 ** и правильную страницу в ** .../medicos/publico/accesoInterno **.Я только что протестировал без косой черты, и приложение вовлекает то же самое. –
Извините, не понимал, что вы использовали оба actionbeans вместе. Я думал, что вторая была альтернативой первой. Что именно находится в переменной JSP_ACCESO_INTERNO? – acdhirr