gpt4 book ai didi

java - struts2如何设置UTF-8字符编码

转载 作者:行者123 更新时间:2023-11-30 07:14:50 27 4
gpt4 key购买 nike

我有一个 jsp 文件,我在其中收集表单值并通过 jquery Ajax 将其发送到 struts 2 Action 类。

我的 Ajax 函数看起来像

var DataValues = $("#Form1").serialize();
alert(DataValues);
alert(decodeURI(DataValues));
$.ajax({url: urlPass,
dataType:datatypepass,
method:methodpass,
data:DataValues,
success: function(data,stat,Xhr){calbackPass(data,stat,Xhr);},
error:function(xhr, status, error){alert("Error : "+xhr.responseText+" status : "+xhr.status);}
});

当我解码 url 并提醒它我正确编码和解码的文本时。

当我通过 ajax 将它发送到 struts2 时会出现问题。

我检查了 Interceptor 中的值,它显示值 ????????

拦截器

  public class LoginInterceptor extends AbstractInterceptor implements StrutsStatics
{
@Override
public String intercept(ActionInvocation arg0) throws Exception
{
HttpServletRequest rs=ServletActionContext.getRequest();
System.out.println(rs.getCharacterEncoding());
Map session=ActionContext.getContext().getSession();
Map<String, Object> parameters=ActionContext.getContext().getParameters();
for(Map.Entry<String, Object> ll:parameters.entrySet())
{
String a[]=(String[])ll.getValue();
for(String b:a)
{
System.out.println(ll.getKey()+" : "+b);
}
}}}}

在我的 jsp 文件中,我将内容类型设置为 UTF-8,在 ajax 中,我也检查了内容类型,但它不起作用。在 tomcat server.xml 中,我也将内容类型设置为 UTF-8

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>

必须为此 UTF-8 进行任何其他设置

提前致谢。

最佳答案

在您的 web.xml 中添加一个字符编码过滤器,在 Struts 之前拦截所有请求。

<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>
org.apache.catalina.filters.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

org.apache.catalina.filters.SetCharacterEncodingFilter 从 Tomcat 7.0.20 开始可用。否则,只需实现您自己的 Filter 即可使用

设置字符编码

编辑:添加/以正确关闭过滤器和过滤器映射标签

request.setCharacterEncoding("UTF-8");

关于java - struts2如何设置UTF-8字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18300402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com