Primefaces ckEditor无法传递完整内容到服务端进行PDF下载处理
PrimeFaces CKEditor内容提交截断问题解决方案
前端配置修正
- 首先修正XHTML中pe:ckEditor的ajax配置:原有
process="@this editForm:editor"存在重复指定组件的问题,@this本身就指向当前编辑器组件,直接修改为process="@this"即可,避免参数重复提交导致的截断。 - 打开浏览器F12开发者工具,切换到网络面板,触发提交操作后查看对应请求的表单数据,确认编辑器参数的内容是否完整:如果此处内容已经不完整,优先修改前端提交逻辑,你已经可以在客户端拿到完整HTML字符串,直接将隐藏textarea绑定到后台接收属性,绕过pe:ckEditor自身的提交逻辑即可。
- 若需要保留原编辑器提交逻辑,可尝试将
escape="true"改为escape="false",避免HTML转义过程中出现异常截断。
WebSphere服务端参数配置
你之前查找的maxPostSize是Tomcat的配置参数,WebSphere的POST大小限制配置方式如下:
传统WebSphere版本
- 登录WebSphere管理控制台,依次进入:服务器 > 服务器类型 > WebSphere应用服务器 > 目标服务器名称 > 容器设置 > Web容器 > 传输链 > 对应HTTP传输链(默认是WCInboundDefault) > HTTP入站通道
- 修改「最大消息大小」参数,默认值为2MB(单位为字节),可根据实际内容大小调整为20971520(即20MB)或更大数值,保存配置后重启服务器生效。
WebSphere Liberty版本
直接在server.xml的httpEndpoint节点添加maxPostSize配置即可,示例:
<httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443" maxPostSize="20971520" />
其他可能的问题排查
- 检查web.xml中的
multipart-config配置,确认max-request-size参数是否足够容纳提交的内容大小。 - 检查后台接收内容的字段配置:如果用实体类接收字符串内容,确认对应字段是否映射为TEXT/CLOB类型,避免关系型数据库的varchar默认长度限制截断内容。
- 临时关闭ajax提交改用普通表单提交测试,排除PrimeFaces ajax的参数长度限制问题。
内容的提问来源于stack exchange,提问作者Dobidoo
相关产品推荐
相关产品推荐

