spring roo / spring mvc:如何为控制器方法设置uriencoding

汤姆

我有一个运行在tomcat 7中的spring roo Web应用程序。在那里,我有一个spring roo生成的控制器方法,我将其插入来调试问题:

@RequestMapping(params = "find=ByFirstNameEqualsAndLastNameEquals", method = RequestMethod.GET)
public String findAuthorsByFirstNameEqualsAndLastNameEquals(
        @RequestParam("firstName") String firstName,
        @RequestParam("lastName") String lastName,
        @RequestParam(value = "page", required = false) Integer page,
        @RequestParam(value = "size", required = false) Integer size,
        @RequestParam(value = "sortFieldName", required = false) String sortFieldName,
        @RequestParam(value = "sortOrder", required = false) String sortOrder,
        Model uiModel
        ) {

    System.out.println("find author lastname: " + lastName);
    String lastNameUTF8 = null;
    String firstNameUTF8 = null;
    try {
        lastNameUTF8 = new String(lastName.getBytes("ISO-8859-1"), "UTF-8");
        System.out.println("lastnameUTF8: " + lastNameUTF8);
        firstNameUTF8 = new String(firstName.getBytes("ISO-8859-1"),
                "UTF-8");
        System.out.println("lastnameISOtoUTF8: " + firstNameUTF8);
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
            ...

正如人们在日志中所看到的:

  find author lastname: ШÑ<U+0082>Ñ<U+0080>ембеÑ<U+0080>г
  lastnameISOtoUTF8: Штремберг

requestparameters firstNamelastName进来编码为ISO-8859-1,但我希望它们以UTF-8编码。我想我看到了大多数类似的问题

并确保将所有分支设置为UTF-8:

web.xml:

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

tomcats server.xml:

...
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" 
          URIEncoding="UTF-8"
...
<!-- Define an AJP 1.3 Connector on port 8009 -->
 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" 
   URIEncoder="UTF-8"
/>

Java参数:

/usr/local/jdk7/bin/java -Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8 /usr/local/tomcatODM_TEST/bin/bootstrap.jar:/usr/local/tomcatODM_TEST/bin/tomcat ...  org.apache.catalina.startup.Bootstrap start

还将浏览器编码设置为UTF-8,服务器和客户端上的系统LANG:

$ echo $LANG  en_US.utf8

我没有任何线索还能做些什么来摆脱Spring MVC的有趣的ISO-8859-1解码问题,我想...有什么想法吗?我在俯视什么?

鲍勃马克西

我遇到了同样的问题,经过大量研究后才意识到这是Tomcat连接器。我尝试了所有操作,但仅将以下内容修复为“ server.xml”

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

令人讨厌的是,您无法在Spring中设置某些内容来设置URIEncoding。

另外,最初的<connector ... URIEncoding="UTF-8"/>更新无法正常进行,但这是因为我的Tomcat“ server.xml”已被覆盖,因此请确保不是这种情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

spring roo / spring mvc:如何设置控制器方法的uriencoding

来自分类Dev

Mac 上的 Spring Roo 设置

来自分类Dev

Spring Roo:如何编辑标签样式

来自分类Dev

不再支持Spring Roo吗?

来自分类Dev

从存储库获取Spring Roo

来自分类Dev

Spring Roo重构拔出ITD

来自分类Dev

从存储库获取Spring Roo

来自分类Dev

Spring Roo-包括jQuery

来自分类Dev

Spring Roo-跳过休眠

来自分类Dev

Aspectj和Spring Roo'NoAspectBoundException'

来自分类Dev

现在 IntelliJ 中的 Spring Roo 控制台在哪里?

来自分类Dev

Spring Tools Suit 4 和 Spring roo

来自分类Dev

有什么方法可以在Spring Roo中使用GSON库?

来自分类Dev

如何在Spring Roo中更改代码生成/模板

来自分类Dev

Spring Roo如何向组合添加空选项

来自分类Dev

如何用Spring Roo创建Neo4J图?

来自分类Dev

Spring Roo添加了自定义控制器和JSP

来自分类Dev

Spring MVC:如何为控制器获取正确的URL?

来自分类Dev

Spring MVC如何为控制器提供可注射方法

来自分类Dev

Spring Roo可以处理gradle项目吗?

来自分类Dev

Spring Roo @Transient不起作用

来自分类Dev

Spring Roo:显示和下载文档

来自分类Dev

Spring Roo-码头无法启动

来自分类Dev

没有创建Spring Roo项目

来自分类Dev

Spring Roo支持基于多模块的分层

来自分类Dev

Spring Roo可以处理gradle项目吗?

来自分类Dev

Spring Roo 1.3.1 ORDER BY代码生成错误?

来自分类Dev

Spring Roo:显示和下载文档

来自分类Dev

spring framework和spring roo有什么区别