Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

ポストバック時に outputText の改行と連続するスペースが削除される

公開日: Aug 21, 2024
説明

ポストバック時に outputText で表示されるコンテンツの改行と連続するスペースが削除されます。 
 
再現方法は次のとおりです。
1.次のクラスを作成します。
public with sharing class PostbackIssue {    public String selectedValue { get; set; }    public CaseComment comment { get; set; }        public PostbackIssue() {        comment = new CaseComment(CommentBody = 'There   are    3    spaces   between   each   word.\r\n\r\nThere is a blank line before this one.');    }            public PageReference myAction() {        return null;    }    }

2.次のマークアップを使用して、PostbackIssue という VF ページを作成します。
                                                                                                 

3./apex/PostbackIssue に移動して、[Rerender] (レンダリング) をクリックすると、改行と連続するスペースが削除されます。

これは Tidy のバグ (https://issues.jboss.org/browse/RF-1710) によるものでしょうか?
解決策

何らかの理由 (書式設定など) で複数のスペースが必要な場合は、  エンティティを使用する必要があります。ただし、このエンティティ自体が Apex で HTML エスケープされないようにするには、適切な「escape」オプションを指定する必要があります。例:
 
1.outputText タグの場合、「escape」属性を false に設定する必要があります。次に例を示します。
 
  • コントローラー:
comment = new CaseComment(CommentBody = 'There   are   3   spaces   between   each   word.\r\n\r\nThere is a blank line before this one.');
  • Apex ページ:
   
2. selectList / selectOptions / selectOption:
 
selectList のオプションにノーブレークスペースを表示する場合、設定する属性は少し異なります。apex:selectOption を使用するときに「itemEscaped」を「false」に設定するか、コントローラーで SelectOption オブジェクトを作成する場合は、  エンティティの値を持つ各 SelectOption で setEscapeItem(false) を呼び出します。


ただし、この記事の説明に記載されている手順に従って再現可能な問題は、Visualforce が無効な HTML を修正するために使用するツールである Tidy ( http://en.wikipedia.org/wiki/HTML_Tidy) によるものであり、Tidy RF-1710 バグによるものではありません。
 
Tidy はコンテンツが属性で指定されているページの VF バージョンで動作しているのではなく、VF タグから生成された結果の HTML で動作しているため、RF-1710 は関係ありません。そのため、問題のテキストは属性ではなく、タグのコンテンツ内にあります。outputText の場合、SPAN のコンテンツ内にあります。この場合、 コンテンツが PRE タグで囲まれていない限り、Tidy パーサーは空白と改行を削除します。Tidy パーサー/レクサーは、HTML/XML パーサーであって CSS エンジンではないため、「white-space: pre;」CSS スタイルを尊重する機能がありません。

これを回避するには、前述のように、PRE タグを使用するか、 の代わりに を使用します。
ナレッジ記事番号

000387212

 
読み込み中
Salesforce Help | Article