首页 > 解决方案 > Primefaces 10:删除文本区域中的换行符

问题描述

在将项目迁移到 Primefaces 10 期间,我遇到了 textareas (p:inputTextarea) 的问题 - 在保存之前删除了换行符,并且文本显示在一行上。

我的文本区域没有什么特别之处:

       <p:inputTextarea id="offercommentTextareaId" 
            styleClass="m-0 w-100" rows="10" autoResize="true" 
            counter="offerdataCounterTextId"
            counterTemplate="#{components['org.primefaces.component.inputTextarea.counterTemplate']}"
            maxlength="4000"
            value="#{supplierOffer.offercomment}"
            readonly="false"
            disabled="false">
        </p:inputTextarea>

我找不到这个问题的任何解决方案。

多谢提前

更新1:

  1. 我也尝试过使用 h:inputTextarea 并且得到了相同的结果 - 在验证之前/期间和提交之前删除了换行符;
  2. 还带有 CSS 属性“white-space: pre;” - 相同的结果;
  3. 我删除了所有 CSS 文件 - 没有主题,并且我的 CSS 文件被注释了 - 结果相同;
  4. 使用 ICEfaces 4 正在工作。

我在 IBM Liberty 21.0.0.6 上将 Primefaces 10.0.3 与 MyFaces 2.3 一起使用

因为它与 ICEfaces 4 一起使用,所以我认为 Primefaces 和/或 JQuery 中存在错误。

更新 2: 在深入研究问题后,我终于找到了问题的根源。问题是通过在 h:form 中使用 'enctype="multipart/form-data"' 给出的。换行符用作将“部分”从文本区域中取出的分隔符​​。没有这个属性,一切都很好。另一方面,上传文件需要此属性。这个答案像我一样更好地解释了它:How to have a working Textarea and a fileUpload in one form

我仍然不明白为什么它与 ICEfaces 4(确切地说是 4.3 版)一起工作。现在我必须把它分成两种形式。

标签: jsfprimefaces

解决方案


推荐阅读