8、struct2解决中文乱码的方式

首先建立一个jsp页面

列如

页面编码统一问题,这个最容易解决。

<%@ page language="java" import="java.util.*" pageEncoding="GBK" contentType="text/html; charset=GBK"%>

以GBK为例子,jsp页面加上上面一句就能解决页面编码问题。

是以GBK可以进行提交和编码

 

1、以get的方式提交,要解决以get的方式提交出现的乱码,只需要修改tomacat的配置文件就可以了

配置应用服务器的编码,这里以tomcat为例子。找到server.xml这个配置文件,并在该文件中找到如下位置:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>

在这里面加入URIEncoding="GBK"变成下面的样子

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

 

2、以post的方式提交,修改tomacat的配置是无效的,可以采取下面的两种方式

方式1:

在struct.xml中进行配置

复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <!-- 当struts.xml配置文件发生修改,会立刻加载,在生产环境下最好不要配置 -->
    <constant name="struts.configuration.xml.reload" value="true"/>
    <!-- 会提供更加友好的提示信息 -->
    <constant name="struts.devMode" value="true"/>
    <!-- 设置字符编码 -->
    <constant name="struts.i18n.encoding" value="GBK"/>

          
    <package name="user-package" extends="struts-default" namespace="/aa/a/a">
        <action name="add" class="com.bjpowernode.struts2.UserAction">
            <result>/add_user_success.jsp</result>
        </action>
    </package>          
</struts>
复制代码

   <constant name="struts.i18n.encoding" value="GBK"/> 默认的编码格式是utf-8

第二种方式,在项目的web.xml中进行配置

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        <init-param>
            <param-name>struts.i18n.encoding</param-name>
            <param-value>GB18030</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>
复制代码

通过上面的操作就解决了struct2中get和post方式解决乱码的问题

posted on   luzhouxiaoshuai  阅读(377)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示