I\'m trying to pass a simple URL to a view within a play framework app, however when passed as a string, the &
in the url is changed to &
w
If you want to render HTML content instead of displaying it as raw text, return the content .as("text/html")
. Example:
WS.url("http://www.stackoverflow.com").get().map(resp => Ok(resp.body).as("text/html"))
To prevent the default escaping that happens for dynamic content on views you need to wrap the String
with @Html(String)
function:
View:
@(url: String)
<div class="myLink">
Go to: @Html(url) <br>
not to: @url
</div>
Controller:
public static Result displayLink(){
return ok(view.render("<a href='http://stackoverflow.com/'>Stack Overflow</a>"));
}
See The template engine page on the documentation for more info (specifically the "Escaping" section at the very bottom).