2010-07-26 45 views
38

Tôi cần hiển thị ngắt dòng bằng cách sử dụng outputText để tôi có thể sử dụng số tiền rendered được phân bổ. Tôi cố gắngLàm thế nào để hiển thị ngắt dòng với outputText?

<h:outputText value="<br/>" escape="false" /> 

nhưng nó tạo ra ngoại lệ

The value of attribute "value" associated with an element type "null" must not contain the '<' character. 

Trả lời

87

Điều đó thực sự không hợp lệ vì Facelets vì nó không hợp lệ về cú pháp trong XML. Bạn cần phải tự thoát khỏi các ký tự đặc biệt XML như <, > và v.v.

<h:outputText value="&lt;br/&gt;" escape="false" /> 

Bạn có thể tuy nhiên chỉ phát ra những <br/> trong mẫu văn bản mà không cần một <h:outputText>.

<br/> 

Để hiển thị điều kiện, hãy quấn nó vào ví dụ: <ui:fragment>.

<ui:fragment rendered="#{bean.rendered}"><br /></ui:fragment> 

A <h:panelGroup> cũng hợp lệ vì nó không phát ra bất kỳ nội dung nào cho HTML.

<h:panelGroup rendered="#{bean.rendered}"><br /></h:panelGroup> 
+0

làm thế nào bạn sẽ làm điều này khi động thêm một 'HtmlOutputText' trong một đậu được quản lý? Tôi đã cố gắng 'HtmlOutputText linebreak = new HtmlOutputText(); lineBreak.setValue ("< br/>" và "
"); '(rõ ràng là không cùng một lúc như thế) nhưng không làm việc, họ chỉ đơn giản là xuất văn bản đã nhập, không phải là ngắt – Austin

+1

@Austin: Rõ ràng bạn quên gọi điện thoại' setEscape (sai) '. – BalusC

+0

chắc chắn bạn không cần bất kỳ cuốn sách mới nào? =) – Austin

0

Bạn có thể thử đặt "<br />" bên trong một gói tài nguyên và sau đó nhận được giá trị từ đó bó tài nguyên.

3

TRANG JSF

<h:outputText value="#{car.crg}" escape="false" style="white-space: pre-wrap;word-wrap: break-word; " /> 

thoát nên false và viết đậu Getter phương pháp như sau

public String getCrg() { 
     return crg.replace("<br/>", "&lt;br /&gt;"); 
     //return crg; 
    } 
Các vấn đề liên quan