2009-12-15 24 views
5

Điều gì sẽ phù hợp với biểu thức EL trong JSP để có một dòng mới hoặc HTML là <br/>? Đây là mã của tôi không hoạt động và hiển thị bằng văn bản '\ n'.Làm thế nào để đặt "dòng mới" trong ngôn ngữ biểu thức của JSP?

<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}\n#{msg.TCW_SELECT_PART_ANALYSIS2}"/> 
+0

Bạn có thể muốn sử dụng
kgiannakakis

+0

tôi thêm "JSF" tag, giả sử nó từ Bozho

+0

@Bozho: đó là khuôn mặt của ADF của Oracle, vì vậy bạn đã đúng. – BalusC

Trả lời

12

Vì bạn muốn đầu ra <br />, chỉ cần làm:

<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}<br />#{msg.TCW_SELECT_PART_ANALYSIS2}" escape="false" /> 

Thuộc tính escape="false" ở đó để tránh những <br /> bị HTML thoát.

Bạn thậm chí có thể hiển thị hai thư trong các thẻ riêng biệt và đặt <br /> ở dạng văn bản thuần túy giữa chúng.

<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}" /> 
<br /> 
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS2}" /> 

Nếu bạn vẫn trên JSF 1.1 trở lên, thì bạn cần phải quấn HTML đơn giản trong <f:verbatim> như:

<f:verbatim><br /></f:verbatim> 
+0

nơi tôi đặt các ký tự Pavel

2

Làm thế nào về:

<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}"/> 
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS2}"/> 

(ví dụ: chia giá trị và đưa nhân vật bạn muốn giữa hai)?

4

Nếu bạn muốn có một dòng mới trong trình duyệt thì bạn cần phải đặt "<br/>" trong văn bản. Trình duyệt sau đó sẽ giải thích nó một cách chính xác. Nó không hiểu \ n.

+0

Đây là câu trả lời hay nhất! – Pavel

1

Viết một chức năng tùy chỉnh mà các cuộc gọi đoạn mã này:

import java.util.StringTokenizer; 

public final class CRLFToHTML { 

    public String process(final String text) { 

     if (text == null) { 
      return null; 
     } 

     StringBuilder html = new StringBuilder(); 

     StringTokenizer st = new StringTokenizer(text, "\r\n", true); 

     while (st.hasMoreTokens()) { 
      String token = st.nextToken(); 

      if (token.equals("\n")) { 
       html.append("<br/>"); 
      } else if (token.equals("\r")) {  
       // Do nothing  
      } else {  
       html.append(token);  
      } 
     } 

     return html.toString(); 

    } 

} 
+0

Điều này tồn tại trong hương vị của JSTL 'fn: replace'. Ngoài ra, điều đó cũng không cần thiết nếu bạn sử dụng 'escape =" false "' trong 'UIOutput' như được chỉ ra bởi Bozho. – BalusC

Các vấn đề liên quan