Provo a reindirizzare a un'altra azione e a trasmettere un parametro stringa. Funziona senza problemi, ma ho un problema di codifica se utilizzo le dieresi tedesche.Struts 2 problema di codifica dei parametri durante il reindirizzamento a un'altra azione
Questo è il mio codice: Prima azione ha un messaggio sul campo con getter e setter. Nell'azione ho impostato la stringa.
private String message;
public String action1()
{
message = "ö";
return SUCCESS;
}
La seconda azione ha un messaggio di campo con getter e setter.
private String message;
struts.xml con la definizione delle azioni sia
<action name="action" method="action1" class="de.samba.control.actions.Action1">
<result name="success" type="redirectAction">
<param name="actionName">action2</param>
<param name="message">${message}</param>
<action name="action2" class="de.samba.control.actions.Action2">
<result name="success">/pages/showMessage.jsp</result>
Se Io non utilizzando il reindirizzamento e mostrare il messaggio su un jsp , tutto funziona bene. La codifica è corretta. Se reindirizzamento a un'altra azione, il setter del campo messaggio imposta la stringa di formattazione errata "ö". Non riesco a trovare la soluzione. Qualcuno mi puó aiutare per piacere?
Filtro proprio:
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>de.samba.control.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
Filtro classe
public class CharacterEncodingFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain next) throws IOException, ServletException
{
String encoding = request.getCharacterEncoding();
if (encoding == null || encoding.length() == 0)
{
request.setCharacterEncoding("UTF-8");
}
encoding = request.getCharacterEncoding();
next.doFilter(request, response);
}
}
Poi ho provato questo filtro:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
Questo non funziona troppo. Qualcuno conosce questo problema? Forse è causato da Spring Security.
Ciao Rafael., Ho affrontato lo stesso problema (inizialmente funzionava bene in FF e non in IE), dopo aver seguito la tua soluzione, funziona bene in IE, ma non funziona più in FF, potresti per favore aiutami a risolvere questo .. è molto molto urgente .. grazie in anticipo !!! –