non*_*com 0 scala playframework-2.0
在Play 2.0中,使用Scala,我想创建一个带有html片段并将每一行放入<div>块中的工厂.我已经尝试了几种我能想到的方法,但它总是出现在String/Html的类型错误或者在页面上写入html代码,就好像它是文本一样.有谁知道如何做到这一点?
更新:
我希望看到的是这样的:
@factories.f_div_lines {
<a href="/aabbcc"> abc </a>
<a href="/ccbbdd"> cbd </a>
<a href="/bbddee"> bde </a>
<a href="/ddeeff"> def </a>
<a href="/eeffgg"> efg </a>
}
Run Code Online (Sandbox Code Playgroud)
并且所有<a href>标签都被<div>'s 包围
如果你想在不同的divs 上拆分多行字符串,那么写一个这样的模板:
@(message: String)
@for(line <- message.lines) {
<div>@line</div>
}
Run Code Online (Sandbox Code Playgroud)
播放会自动转义HTML内容,因此如果您message包含任何内容,则必须通过调用Html(例如在循环内)禁用转义
<div>@Html(line)</div>
Run Code Online (Sandbox Code Playgroud)
并以这种方式调用它:
Ok(views.html.index("First\nSecond\nThird"))
Run Code Online (Sandbox Code Playgroud)
请参阅迭代部分的播放指南
更新
以下代码定义split_lines_in_divs哪个接受Html参数,将其转换为String对象并应用与上面相同的代码.请注意,我使用了main由Play自动生成的Play功能!当您创建新的Scala项目以提供常见的HTML部分时
@(message: String)
@split_lines_in_divs(the_html: Html) = {
@for(line <- the_html.toString().lines) {
<div>@Html(line)</div>
}
}
@main("The title"){
@split_lines_in_divs {
<a href="test">Test</a>
<a href="test2">Test2</a>
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4662 次 |
| 最近记录: |