XML¶
Scala cho phép viết literal XML. Xitrum sử dụng tính năng này như “template engine”:
- Scala check cú pháp XML khi compile: Các View là typesafe.
- Scala tự động bỏ qua XML: Các view được tránh XSS theo mặc định.
Dưới đây là một vài thủ thuật.
Unescape XML¶
Sử dụng scala.xml.Unparsed
:
import scala.xml.Unparsed
<script>
{Unparsed("if (1 < 2) alert('Xitrum rocks');")}
</script>
hoặc sử dụng <xml:unparsed>
:
<script>
<xml:unparsed>
if (1 < 2) alert('Xitrum rocks');
</xml:unparsed>
</script>
<xml:unparsed>
sẽ được ẩn đi trong output.
<script>
if (1 < 2) alert('Xitrum rocks');
</script>
Các nhóm XML element¶
<div id="header">
{if (loggedIn)
<xml:group>
<b>{username}</b>
<a href={url[LogoutAction]}>Logout</a>
</xml:group>
else
<xml:group>
<a href={url[LoginAction]}>Login</a>
<a href={url[RegisterAction]}>Register</a>
</xml:group>}
</div>
<xml:group>
sẽ được ẩn đi trong output, ví dụ khi người dùng thực hiện đăng nhập:
<div id="header">
<b>My username</b>
<a href="/login">Logout</a>
</div>
Render XHTML¶
Xitrum tự động render view và layout sang XHTML. Nếu bạn muốn tự render chúng (hiếm khi), chú ý đến các dòng code dưới đây.
import scala.xml.Xhtml
val br = <br />
br.toString // => <br></br>, một vài trình duyệt sẽ render dòng này như 2 thẻ <br />
Xhtml.toXhtml(<br />) // => "<br />"