【问题标题】:struts2 form to accept multi languagestruts2形式接受多语言
【发布时间】:2012-07-25 20:00:12
【问题描述】:

我有一个表单,可以提交姓名、地址、附属机构等详细信息。在这里,这些输入将使用不同的语言,如法语、西班牙语、德语、俄语等。我指出,这些输入有时具有非英文键盘字符,并且以不同的字符形式提交,例如 &、^ 等。

例如,

这是输入

Instituto de Quı´mica,圣奥保罗大学,圣奥保罗, 巴西

这是我提交表单时保存在数据库中的数据

Instituto de Qu?´mica, Universidade de Sa˜ o Paulo, Sa˜ o Paulo, Brazil

我已经在数据库和jsp页面中设置了字符集为UTF-8,后来我发现struts 2表单有一个标签属性acceptcharset="UTF-8"

它只适用于少数其他语言,但不适用于西班牙语、葡萄牙语等等。 那么这个问题的解决方法是什么?

【问题讨论】:

  • 只是怀疑你能将Tomcat默认字符编码设置为UTF-8吗?
  • 你的意思是这个
  • 在您的server.xml 中检查<Connector port="8080"/> 并添加<Connector port="8080" URIEncoding="UTF-8"/>,尽管您的端口可能不同
  • @Umesh Awasthi 这对我不起作用

标签: utf-8 struts2


【解决方案1】:

我通过在 HTML 页面中更改 pageEncodingcharset 中的 UTF-8 来解决这个问题charset 是 charset 是 UTF-8,所以我通过在连接 url 中提供 jdbc:mysql://localhost:3306/yourDB?useUnicode=true&characterEncoding=utf8 来强制 DB 连接使用 UTF-8

【讨论】:

    【解决方案2】:

    您可以使用 Spring 过滤器,并将编码强制为 UTF8。 将此添加到您的 web.xml:

      <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>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    【讨论】:

    • 我需要为此安装任何弹簧插件吗?
    • 您需要将 spring 库添加到您的项目中。如果你没有在 struts2 动作中使用 spring 注入功能,你就不需要 struts-spring-plugin。
    • @SathishKumarkk:即使你没有使用 Spring,你也可以创建一个简单的过滤器,在传递控制之前设置请求编码
    • @Umesh Awasthi 你能告诉我怎么做吗
    • @SathishKumarkk:Spring 是开源的,看看这个过滤器的源代码,你可以根据自己的方式调整它。这里是源代码链接grepcode.com/file/repo1.maven.org/maven2/org.springframework/…
    【解决方案3】:

    如果需要强制jsp转为UTF-8,可以在web.xml中写如下:

    <jsp-config>
        <jsp-property-group > 
            <url-pattern>*.jsp</url-pattern>
            <page-encoding>UTF-8</page-encoding>
        </jsp-property-group>
    </jsp-config>
    

    【讨论】:

      猜你喜欢
      • 2018-11-08
      • 2016-11-04
      • 2017-09-04
      • 1970-01-01
      • 2023-02-11
      • 2011-09-03
      • 2019-03-15
      • 2012-07-18
      相关资源
      最近更新 更多