2013-02-28 2 views
0

Я создал несколько вспомогательных классов, чтобы обеспечить дополнительные функции для моих представлений. Например. У меня есть класс Button, который должен отображать некоторый пользовательский HTML для отображения элемента кнопки. Эти классы написаны на простой Scala и не используют шаблонные файлы Play. Но, конечно, я все еще могу (и хочу) называть их как @Button("label", ...) из моих представлений.Как распечатать XML-выход Scala в Play! Посмотреть?

Однако проблема, с которой я столкнулся, это мои методы toString.

class Button(val label: String, ...) 
{ 
    override def toString: String = 
    { 
     <a ...> ... </a>.toString 
    } 
} 

К сожалению, это избежать HTML-символы в &lt; и т.д. в представлениях.

Как правильно экспортировать XML Scala в представления Play? Я хотел бы остаться с XML, а не писать их как струны в первую очередь ...

ответ

1

Не играл с Play, но быстрый поиск Google придумал это:

https://groups.google.com/forum/?fromgroups=#!topic/play-framework/WiDo3WJnC9s

Да любой выход будет экранирован и завернут в файл play.templates.Html .

Так что, если вы хотите контролировать убегающую механизм, просто сделать свой динамическое выражение непосредственно возвращают HTML:
@Html("<strong>Do not escape</strong>")

Не было избежать написания XML в строку первой, но я предполагаю, что это не главный вопрос :)

+0

Спасибо, ты дал мне подсказку в правильном направлении. Все, что мне нужно сделать, это перенастройка Html-объекта из метода применения компаньона. Добавление некоторого неявного преобразования xmlToString в мой вспомогательный пакет сохраняет код чистым. – Taig