2013-02-07 40 views
21

Tôi đang cố chuyển một URL đơn giản tới chế độ xem trong ứng dụng khung chơi, tuy nhiên khi được chuyển thành chuỗi, số & trong url được đổi thành & khiến URL không hoạt động.Làm cách nào để chuyển html thô sang chế độ xem khung công cụ?

Nếu tôi thay đổi đối số thành Html, nghĩa là @(url: Srting) thành @(url: Html), thì tôi gặp lỗi khi cố gắng chuyển url dưới dạng chuỗi tới phương thức view.render().

Tôi làm cách nào để chuyển đổi url thành Html và chuyển nó như vậy?

Trả lời

33

Để ngăn chặn mặc định thoát điều đó xảy ra cho nội dung động trên quan điểm bạn cần phải quấn String với @Html(String) chức năng:

Xem:

@(url: String) 
<div class="myLink"> 
    Go to: @Html(url) <br> 
    not to: @url 
</div> 

Bộ điều khiển:

public static Result displayLink(){ 
    return ok(view.render("<a href='http://stackoverflow.com/'>Stack Overflow</a>")); 
} 

Xem The template engine trang trên tài liệu để biết thêm thông tin (cụ thể là phần "Thoát" ở cuối cùng).

+0

Tôi cần đặt chú thích này ở đâu? Trong bộ điều khiển? –

+0

Ví dụ: ngay bây giờ trong bộ điều khiển của tôi, tôi đang làm: 'String url = SomeModel.getUrl(); return ok (myView.render (url)); '. Tôi nên đặt chú thích '@html()' ở đâu? –

+0

@ClickUpvote kiểm tra mẫu đã thay đổi để giải thích mọi thứ. – biesior

5

Nếu bạn muốn hiển thị nội dung HTML thay vì hiển thị nội dung dưới dạng văn bản thô, hãy trả lại nội dung .as("text/html"). Ví dụ:

WS.url("http://www.stackoverflow.com").get().map(resp => Ok(resp.body).as("text/html")) 
Các vấn đề liên quan