java - Struts2 - 操作名称后面的参数不适用于其他语言

标签 java struts2

我在操作名称后面实现参数,如下所示“http://localhost:8080/webapp/book/view/abc” 但是当我发送另一个语言参数时,例如“http://localhost:8080/webapp/book/view/กขค”(这是泰语) 它不起作用,这是我的操作代码。

@Getter @Setter String bookingNo;

@Action(value = "view/*", params = {"bookingNo", "{1}"}, results = {@Result(name = SUCCESS, location = "view.jsp")})
public String view() {

    // show something like this: กขค
    log.info("bookingNo: " + bookingNo);

    // show correct encoding value
    log.info("bookingNo after unescapeHtml: " + StringEscapeUtils.unescapeHtml(bookingNo));

    return SUCCESS;
}

我的问题是如何设置 unescapeHtml 或其他选项来为所有 Action 中的所有方法获取正确的参数编码?

PS。我已经在我的 tomcat7 中将 URIEncode 配置为 UTF-8,并且尝试实现 Interceptor,但我不知道如何取消转义它?

最佳答案

您有 UTF-8 字符。使用以下命令将它们编码为字节序列 平台的默认字符集并解码为 UTF-8 字符集。

log.info("bookingNo: " + new String(bookingNo.getBytes(), "UTF-8"));

关于java - Struts2 - 操作名称后面的参数不适用于其他语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29412729/

相关文章:

Java-将缓冲图像转换为字节[]而不写入磁盘

java - 我一直在获取java.lang.illegalstateexception?

java - 为什么 struts2 FilterDispatcher 被弃用?

struts2转发到不同页面

java - Struts 命名空间和 WEB-INF 文件夹

java - Struts2单元测试给出错误: Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException

java - 在 Struts 2 中使用嵌套域对象进行 CRUD 的正确方法是什么?

java - 如何将 Spring ResourceUrlEncodingFilter 与速度模板一起使用

java 将 hashmap 发送到 Freemarker 模板无法正常工作,未定义参数

java - 在 Java 中显式调用默认方法