Как Вы у меня есть также установка 'много' app.config - например, app.configDEV, app.configTEST, app.config. ЛОКАЛЬНЫЙ. Я вижу часть превосходной предложенной альтернативы, но если бы Вам нравится способ, которым она работает на Вас, я добавил бы следующее:
я имею
<appSettings>
<add key = "Env" value = "[Local] "/>
для каждого приложения, я добавляю это к UI в строке заголовка: от ConfigurationManager. AppSettings. Доберитесь ("ENV");
я просто переименовываю конфигурацию к той, для которой я нацелен (у меня есть проект с 8 приложениями с большим количеством конфигурации database/wcf против 4 evenioments). Для развертывания с clickonce в каждого, я изменяю 4 кипения в проекте и иду. (это, которое я хотел бы автоматизировать)
Мой единственный глюк к rememeber для 'очистки всех' после изменения, поскольку старая конфигурация застревает после руководства переименовывают. (Который я думаю, зафиксирует Вас проблема setting.setting).
я нахожу, что это работает действительно хорошо (однажды, я заставлю время смотреть на MSBuild/NAnt)
либеральное использование таблиц HTML для разметки многими компонентами
Многие компоненты? Насколько мне известно , только два делают это «излишне»:
и
. Если вам нужна группа радиокнопок и флажков без таблицы, в которой у вас есть полный контроль над сгенерированной разметкой, просто используйте вместо этого вариант Tomahawk , который имеет дополнительное значение атрибута layout
, равное распространение
. Вот пример подхода
:
<t:selectOneRadio id="foo" value="#{bean.foo}" layout="spread">
<f:selectItems value="#{bean.foos}" />
</t:selectOneRadio>
...
<t:radio for="foo" index="0" />
...
<t:radio for="foo" index="1" />
...
<t:radio for="foo" index="2" />
...
Начиная с JSF 2.2, это возможно даже "из коробки" с новой функцией сквозных элементов / атрибутов. Начиная с JSF 2.3 он даже стал частью стандартного набора компонентов. См. Также ao
В остальном, вы полностью полностью контролируете общий вывод HTML в ваших руках . Только не используйте таблицы для верстки. Т.е. не используйте HTML Как применить CSS, это не так уж и сложно, каждый компонент HTML JSF имеет атрибут Вы даже можете определить глобальные стили CSS и использовать селекторы ID. Единственное, о чем вам нужно позаботиться в JSF + CSS, так это то, что к идентификаторам HTML-элементов, сгенерированным JSF, добавляются идентификаторы всех родительских , который генерирует Однако очень редко выбрать элементы ввода формы или элементы таблицы по идентификатору. Чаще должно использоваться имя класса (которое является более семантическим и лучше повторно используемым), и этого не нужно экранировать. ID обычно в любом случае используется только основными компонентами макета (заголовок, меню, содержимое, нижний колонтитул, заголовок и т. Д.), И они обычно не попадают в JSF Кажется, я ошибаюсь здесь, но каждое учебное пособие по JSF, которое я видел, заканчивается созданием табличных макетов HTML. Я также просмотрел демонстрации RichFaces и IceFaces, и там тоже очень много таблиц для разметки. Начните здесь: Веб-разработка Java EE, с чего мне начать и какие навыки мне понадобятся? Определенно возможно создать веб-сайт, построенный на JSF, который не использует таблицы для макета. Я не уверен, почему вы думаете, что JSF полагается на таблицы? JSF предоставляет основу для разработки страниц любого типа. Вот еще одна ссылка, которая может оказаться полезной:
http://www.ibm.com/developerworks/java/library/j-jsf1/index.html
или JSF
для верстки. Просто используйте элементы HTML
, чтобы позволить JSF сгенерировать элемент HTML
styleClass
, в котором вы можете указать классы CSS (которые в итоге будут иметь атрибут HTML class
) и атрибут стиля style
, в котором вы можете указать встроенный CSS (который в конечном итоге будет иметь атрибут HTML style
). NamingContainer
компонентов (например,
,
и т. Д.) С двоеточием :
в качестве разделителя. Поскольку двоеточие является недопустимым символом в идентификаторах CSS, вам необходимо экранировать его с помощью \
. Таким образом, стилизация элемента ввода, например <h:form id="form">
<h:inputText id="input" ... />
, должна выполняться как #form\:input {
background: gray;
}
NamingContainer
. См. Также:
Похожие вопросы: