【问题标题】:Struts2 - Parameter after the action name not work for other languageStruts2 - 动作名称后的参数不适用于其他语言
【发布时间】:2015-04-02 12:14:34
【问题描述】:

我在动作名称之后实现参数,例如“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 但我不知道如何取消它?

【问题讨论】:

    标签: java struts2


    【解决方案1】:

    您有 UTF-8 字符。使用 平台的默认字符集并解码为 UTF-8 字符集。

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

    【讨论】:

    • 没有。我认为与 UTF-8 编码无关,因为我可以通过 StringEscapeUtils.unescapeHtml 获得正确的值(在 UTF-8 中)
    • 那么,你觉得 UTF-8 怎么样?
    猜你喜欢
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多