Компоненты JSF освобождают, генерируют ужасный HTML-код. Это не в порядке, но действительно ли это приемлемо?

Я havnt попробовал это все же, но это выглядит довольно прохладным:

http://www.codeplex.com/scriptdotnet

6
задан Roman 10 December 2009 в 15:46
поделиться

3 ответа

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 в шаблоне. Вы можете просто использовать элементы

Реализации JSF обычно создают допустимую разметку . Так что это не «грязный html». Тот факт, что это не легко читаемый человеком , не важен, поэтому, чтобы ответить на ваш вопрос - сгенерированный код приемлем.

Вчера я выполнил тест PageSpeed ​​и YSlow в моем приложении MyFaces / RichFaces, и кроме невозможности объединить несколько файлов CSS и JS в один (уменьшение количества HTTP-запросов), все остальное в порядке.

2
ответ дан 17 December 2019 в 07:05
поделиться

Я согласен с вами, HTML, сгенерированный JSF (и всеми библиотеками компонентов) довольно ужасен, но все еще действителен.

Я думаю, что основная проблема в том, что сгенерированный код должен быть совместимым с основными браузерами на рынке, включая Internet Explorer 6+, Firefox, Opera, Chrome ... Это заставляет разработчиков иногда создавать довольно плохой HTML только потому, что «он работает во всех браузерах» ...

0
ответ дан 17 December 2019 в 07:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: