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

时间:2015-04-02 12:14:34

标签: 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并且我尝试实现拦截器,但我不知道如何解决它?

1 个答案:

答案 0 :(得分:0)

您有UTF-8字符。使用它将它们编码为一个字节序列 平台的默认字符集和解码为UTF-8字符集。

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