I noticed that the request_locale was not found, and that's fine. However, the pageUrl was found in the HttpParameters and it is not being set on the action. Below is the Action class and struts.xml:
@SuppressWarnings("serial") @Results( { @Result(name=Action.INPUT, location="/WEB-INF/content/${device}/error.jsp", type="dispatcher"), @Result(name=Action.SUCCESS, location="${redirectURL}", type="redirect") } ) public class ChangeLocaleAction extends BaseAction { private String pageUrl; public ChangeLocaleAction() { super(); } @Override public void validate() { if(StringUtils.isBlank(pageUrl)) { addActionError( getText("error.urlmissing") ); } } @Override public String execute() { try { pageUrl = URLDecoder.decode(pageUrl, "UTF-8"); HttpServletRequest request = getRequest(); if(request == null) { throw new IllegalArgumentException("HTTP request not found."); } /* * The redirect automatically inserts the context path. We need * to remove the context path in redirectURL to prevent duplicate * contextPaths in the redirect. */ String contextPath = request.getContextPath(); if (pageUrl.startsWith(contextPath)) { pageUrl = pageUrl.replaceFirst(contextPath, ""); logger.debug("redirectURL set to [{}]", pageUrl); } } catch(UnsupportedEncodingException ex) { throw new RuntimeException("error decoding url: " + pageUrl, ex); } return SUCCESS; } /** * @return the pageUrl */ public String getPageUrl() { return pageUrl; } /** * @param pageUrl the pageUrl to set */ public void setPageUrl(String pageUrl) { this.pageUrl = pageUrl; } } <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <constant name="struts.devMode" value="true" /> <constant name="struts.action.extension" value="do" /> <constant name="struts.convention.action.packages" value="com.ezlista.web.struts2.action" /> <constant name="struts.convention.classes.reload" value="true" /> <constant name="struts.convention.default.parent.package" value="ezlista-package" /> <constant name="struts.convention.package.locators" value="action" /> <constant name="struts.convention.package.locators.basePackage" value="com.ezlista.web.struts2" /> <constant name="struts.convention.result.path" value="/WEB-INF/content/"/> <constant name="struts.custom.i18n.resources" value="messages" /> <constant name="struts.date.format" value="dd/MM/yyyy hh:mm" /> <constant name="struts.freemarker.templatesCache" value="true" /> <constant name="struts.i18n.encoding" value="UTF-8" /> <constant name="struts.serve.static" value="true" /> <constant name="struts.ui.theme" value="simple" /> <constant name="struts.ui.templateDir" value="template" /> <package name="ezlista-package" extends="json-default"> <interceptors> <interceptor name="valueStack" class="com.ezlista.web.struts2.interceptor.ValueStackInterceptor" /> <interceptor-stack name="ezlistaStack"> <interceptor-ref name="valueStack" /> <interceptor-ref name="defaultStack"> <param name="exception.logEnabled">true</param> <param name="exception.logLevel">ERROR</param> <param name="exception.logCategory">com.ezlista</param> <param name="params.excludeParams">dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,parameters\...*,^_csrf</param> </interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="ezlistaStack" /> <default-action-ref name="default-action" /> <global-results> <result name="login" type="redirectAction">/view-login.do</result> <result name="error">/WEB-INF/content/${device}/error.jsp</result> <result name="exception">/WEB-INF/content/${device}/error.jsp</result> <result name="warning">/WEB-INF/content/${device}/warning.jsp</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="exception" /> </global-exception-mappings> <action name="default-action" class="com.ezlista.web.struts2.action.DefaultAction" /> </package> <package name="home" extends="ezlista-package" namespace="/"> <action name="about" class="com.ezlista.web.struts2.action.DummyAction"> <result>/WEB-INF/content/${device}/about.jsp</result> </action> <action name="help" class="com.ezlista.web.struts2.action.DummyAction"> <result>/WEB-INF/content/${device}/help.jsp</result> </action> <action name="language-help" class="com.ezlista.web.struts2.action.DummyAction"> <result>/WEB-INF/content/${device}/language-help.jsp</result> </action> <action name="pending-email-help" class="com.ezlista.web.struts2.action.DummyAction"> <result>/WEB-INF/content/${device}/pending-email-help.jsp</result> </action> <action name="privacy" class="com.ezlista.web.struts2.action.DummyAction"> <result>/WEB-INF/content/${device}/privacy.jsp</result> </action> <action name="remember-help" class="com.ezlista.web.struts2.action.DummyAction"> <result>/WEB-INF/content/${device}/remember-help.jsp</result> </action> <action name="terms" class="com.ezlista.web.struts2.action.DummyAction"> <result>/WEB-INF/content/${device}/terms.jsp</result> </action> <action name="terms-service" class="com.ezlista.web.struts2.action.DummyAction"> <result>/WEB-INF/content/${device}/terms-service.jsp</result> </action> <action name="view-session-timeout" class="com.ezlista.web.struts2.action.DummyAction"> <result>/WEB-INF/content/${device}/session-timeout.jsp</result> </action> </package> </struts> ________________________________________ From: Lukasz Lenart <lukaszlen...@apache.org> Sent: Wednesday, August 2, 2017 5:01 AM To: Struts Users Mailing List Subject: Re: Request Parameter not being set on Action 2017-08-02 8:34 GMT+02:00 Rubens Gomes <rubens_go...@hotmail.com>: > The request below is sent , but the parameters (request_locale/pageUrl) are > not set on the action. > > http://localhost:8080/change-locale.do?request_locale=en&pageUrl=%2Fview-login.do The "request_locale" parameter is a special parameter that tells I18NInterceptor to change locale, it will be removed after that so you cannot access it in an action. If you need to access locale in an action and assuming your extending the ActionSupport class just call the "getLocale()" method. Regarding the "pageUrl" parameter, can you start with a simple example? Or maybe post your struts.xml plus an action's class? Regards -- Ćukasz + 48 606 323 122 http://www.lenart.org.pl/ --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org