Я havnt попробовал это все же, но это выглядит довольно прохладным:
JSP вставил некоторые нечетные пробелы и пустые строки, но ничего больше.
Этот пробел, кстати, можно обрезать. В Tomcat и клонах все, что вам нужно сделать, это установить для параметра инициализации JspServlet
trimSpaces
значение true
.
Но все библиотеки у меня уже есть попытался создать ужасный html, смешанный со сценариями, смешанными с некоторыми дополнительными скрытыми входами и стилями внутри html. Эти библиотеки также часто предлагают макет таблиц (с различными Panel, GridPanel и другими компонентами).
Если это ваша основная проблема, тогда просто продолжайте базовую реализацию JSF . Он предоставляет все, что вам нужно для начала, при необходимости с небольшой помощью Tomahawk для более расширенных компонентов (например, радио / флажки без таблиц) и недостающих компонентов (например, загрузка файлов и список данных).
Таким образом, вы можете просто выполнить CSS обычным способом: полностью экстернализовать в отдельном файле и использовать только styleClass
в JSF. Не смешивайте встроенный CSS с помощью атрибута стиля . Если вы хотите стилизовать идентификаторы клиента JSF, разделенные двоеточиями (двоеточие является недопустимым идентификатором в CSS), вам нужно только экранировать его в селекторе с помощью обратной косой черты. Например,
#formid \: inputid {фон: серый; }
.
Также не смешивайте встроенные скрипты с атрибутами в *
. Используйте jQuery , чтобы ввести ненавязчивый Javascript. Что касается автоматически сгенерированных сценариев Javascript, поступающих из компонентов JSF, в базовой реализации вы получите это только в h: commandLink
, который по сути является
элемент, который отправляет скрытую форму POST. Поскольку это семантически / технически / SEO-неправильно, я бы вообще не стал его использовать. Просто используйте h: commandButton
для отправки форм и h: outputLink
для навигации.
Что касается дизайна таблиц, начиная с JSF 1.2 вы можете просто написать простой HTML в шаблоне. Вы можете просто использовать элементы Я не знаю точно, но думаю, что ASP.NET генерирует нечто подобное. Так и есть. Итак, вопрос:
, чтобы получить элемент HTML
для позиционирования элементов содержимого.
Реализации JSF обычно создают допустимую разметку . Так что это не «грязный html». Тот факт, что это не легко читаемый человеком , не важен, поэтому, чтобы ответить на ваш вопрос - сгенерированный код приемлем.
Вчера я выполнил тест PageSpeed и YSlow в моем приложении MyFaces / RichFaces, и кроме невозможности объединить несколько файлов CSS и JS в один (уменьшение количества HTTP-запросов), все остальное в порядке.
Я согласен с вами, HTML, сгенерированный JSF (и всеми библиотеками компонентов) довольно ужасен, но все еще действителен.
Я думаю, что основная проблема в том, что сгенерированный код должен быть совместимым с основными браузерами на рынке, включая Internet Explorer 6+, Firefox, Opera, Chrome ... Это заставляет разработчиков иногда создавать довольно плохой HTML только потому, что «он работает во всех браузерах» ...