При использовании MVC в GWT лучше использовать модель с необработанными строками или SafeHtml? - PullRequest
0 голосов
/ 27 сентября 2011

Я пишу код в GWT, который следует шаблону MVC.

К тому времени, когда мое представление рендерится, мои строки должны быть экранированы в SafeHtml.

Я пытаюсь решить, следует лимоя модель должна работать в терминах небезопасных строк и выполнять преобразование в представлении или использовать SafeHtml в модели и выявлять ошибки при построении модели.

Есть ли лучшая практика?

Моя причина для позднего преобразования SafeHtml заключается в том, что это проблема рендеринга и что может не потребоваться оплачивать экранирование строк, которые в конечном итоге не отображаются.С другой стороны, данные, которые нельзя преобразовать в SafeHtml, - это проблема, которая должна быть обнаружена на раннем этапе и помешать модели быть «действительной».

Ответы [ 2 ]

4 голосов
/ 27 сентября 2011

Я бы использовал необработанные строковые объекты, так как модель должна быть независимой от представления, не должна иметь каких-либо зависимостей от какой-либо среды представления, давайте предположим, что завтра вы напишете тонкий клиент затмения и будете общаться с вашей моделью с помощью веб-сервисов, вам не нужнодля извлечения строк Scaped в SafeHtml - просто строк, настольные клиенты, взаимодействующие с веб-службами или даже клиенты командной строки, не должны знать ничего о строках SafeHtml.

Только мои два цента!Pablo

0 голосов
/ 28 сентября 2011

Пабло прав, но есть еще один момент.SafeHtml используется для защиты вашего приложения, потому что клиент не должен доверять серверу и наоборот.Теперь, если вы будете использовать SafeHtml непосредственно в модели, вы будете доверять серверу, предполагая, что сервер предоставляет правильный экранированный и очищенный HTML-код.Чтобы избежать этого, используйте необработанные строки и конвертируйте их в SafeHtml в представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...