我在动作名称之后实现参数,例如“ 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- Action 名称后的参数不适用于其他语言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29412729/

10-14 10:58