You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PrimeFaces响应编码异常:为何查询与分页返回编码不一致?

问题:PrimeFaces 4 + Weblogic 12c 下希腊字母α显示异常(仅首次加载筛选表单时)

环境与现象

  • 使用PrimeFaces 4(无法升级)开发Web应用,生产环境部署在Weblogic 12c,本地测试用Tomcat
  • 数据表格某列包含希腊字母α:
    • 点击带筛选条件的表单按钮加载表格时,后端返回ISO-8859-15编码的响应,α显示为问号
    • 点击分页按钮进入第二页,或从第二页返回第一页时,响应为UTF-8编码,α显示正常

已尝试的解决方案

  • 本地Tomcat环境:修改xhtml文件首行编码声明为<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>,问题解决,但该方法在Weblogic 12c上无效
  • 尝试过调整请求编码的方案,但无效——请求本身是UTF-8正常的,问题出在响应编码上

相关代码

表格数据来自自定义LazyDataModel类,调试确认筛选按钮和分页按钮触发的逻辑仅页码参数不同,其load方法代码如下:

private List<ListElement> data;

@Autowired
private transient CamFacade camFacade;

public List<ListElement> load(int first, int pageSize, String sortField,
        SortOrder sortOrder, Map<String, String> filters) {

        Map<String, Object> params = new HashMap<String, Object>();
        params.putAll(filters);
        params.put("first", first);
        params.put("pageSize", pageSize);
        if(sortField == null){
            params.put("orderBy", params.get("orderBy"));
            params.put("order", params.get("order"));
        }else{
            params.put("orderBy", sortField);
            params.put("order", sortOrder.name());
        }


        int count  = camFacade.countByParams(params);
        if (count > 0 ) {
            data = camFacade.findByParams(params);
        } else {
            data = new ArrayList<ListElement>();
        }

        return data;
}

求助

请问针对Weblogic 12c环境下的这个响应编码问题,有什么可行的解决办法?

内容的提问来源于stack exchange,提问作者BraveOtter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:25:24