Является ли смешивание кода Java и HTML / CSS неизбежно в этой ситуации? - PullRequest
1 голос
/ 22 сентября 2010

У меня есть приложение. который отображает объекты и теги, связанные с этими объектами (не очень оригинальное приложение). Единственное отличие состоит в том, что у тегов есть «типы». У большинства есть простой тип = объект , но у других есть тип = файл . В зависимости от тега они будут иметь разные визуализации. Например, щелкнув по тегу object , вы увидите другие подходящие объекты, но в теге file вы можете найти другие подходящие файлы или щелкнуть ссылку для загрузки, чтобы загрузить файл.

Я могу сделать две вещи:

Из JSP вызовите метод (в основном приложении), который отображает предоставляемые данные (который включает в себя текст тега, его URL и т. Д.) И возвращает строку html. поэтому, если предоставляются только `object_id` и` object_name`, эта сигнатура метода приведет к вызову _object renderer_, но если будут указаны `file_id`,` file_name` и `file_location`, сигнатура метода приведет к _file renderer_ вызываемый метод. Однако эти методы обязательно содержат / знают о html, который будет отображаться (код смешивания / html), что не идеально.

Или у меня могут быть операторы if внутри jsp, которые определяют тип возвращаемых данных и затем отображают соответствующий HTML-код соответствующим образом.

Я предпочитаю первый вариант, так как, по крайней мере, больше происходит с Java, так что я могу легко тестировать больше элементов, но есть ли способ, при котором не требуется смешивание кода и html (хотя все еще используются ванильные сервлеты некоторые новые рамки).

1 Ответ

3 голосов
/ 22 сентября 2010

Краткий ответ: используйте пользовательские теги jsp. Создайте свой собственный taglib, который решит эти проблемы. Пользовательские теги IMO приближаются к аналогии с моделью в мире JSP

...