2013-02-07 20 views
21

मैं एक प्ले फ्रेमवर्क ऐप के भीतर एक दृश्य के लिए एक साधारण यूआरएल पास करने की कोशिश कर रहा हूं, हालांकि एक स्ट्रिंग के रूप में पारित होने पर, यूआरएल में & बदल दिया गया है & जो यूआरएल काम नहीं करता है।फ्रेमवर्क व्यू खेलने के लिए कच्चे एचटीएमएल को कैसे पास किया जाए?

यदि मैं एचटीएमएल में तर्क बदलता हूं, i.e @(url: Srting) से @(url: Html) पर, तो मुझे त्रुटि होती है जब मैं url को view.render() विधि में स्ट्रिंग के रूप में पास करने का प्रयास करता हूं।

मैं यूआरएल को एचटीएमएल में कैसे परिवर्तित कर सकता हूं और इसे पास कर सकता हूं?

उत्तर

33

को रोकने के लिए डिफ़ॉल्ट से बचने कि विचारों पर गतिशील सामग्री के लिए होता है आप रैप करने के लिए की जरूरत है String@Html(String) साथ समारोह:

दृश्य:

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

नियंत्रक:

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

देखें The template engine अधिक जानकारी के लिए प्रलेखन पर पृष्ठ (विशेष रूप से बहुत नीचे "भागने" खंड)।

+0

मुझे यह एनोटेशन कहां रखने की आवश्यकता है? नियंत्रक के भीतर? –

+0

E.g अभी मेरे नियंत्रक में मैं कर रहा हूं: 'स्ट्रिंग url = SomeModel.getUrl(); ठीक है (myView.render (यूआरएल)); '। मुझे '@html()' एनोटेशन कहां रखा जाना चाहिए? –

+0

@ClickUpvote चेक नमूना बदल गया यह सबकुछ बताता है। – biesior

5

यदि आप इसे कच्चे टेक्स्ट के रूप में प्रदर्शित करने के बजाय HTML सामग्री प्रस्तुत करना चाहते हैं, तो सामग्री .as("text/html") पर वापस लौटें। उदाहरण:

WS.url("http://www.stackoverflow.com").get().map(resp => Ok(resp.body).as("text/html"))