我在操作名称后面实现参数,如下所示“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/