Как удалить тему по умолчанию из приложения Java Faces? - PullRequest
0 голосов
/ 30 января 2009

Я никогда не использовал Java раньше (C # - мой домен), но теперь у меня есть задача, к которой я должен применить определенный стиль для крошечной веб-страницы Java. Стиль взят из другого приложения ASP.NET, которое мы внедряем и которое помогли разработать. Похоже, что этот стиль находится на пути становления нашей новой фирменной сети. : P

Веб-страница действительно крошечная - она ​​имеет только форму входа в систему и форму действия с дюжиной текстовых полей и кнопкой. Когда вы нажимаете кнопку, файл генерируется и становится доступным для загрузки.

Это приложение уже сделано моим коллегой, который имеет хороший опыт работы с Java, но почти не имеет опыта работы с Интернетом. Так что он больше не помогает. На данный момент приложение не имеет стиля вообще. Просто набор текстовых полей.

Приложение выполнено в NetBeans и Java Faces - насколько я понимаю. Или, может быть, это «Визуальные лица». Не уверен - не могу сделать головы или хвосты со всеми этими именами из мира Java. В любом случае, это аналог ASP.NET, где у вас есть страница XML с тегами, такими как <ui:textField> и <ui:passwordField>, а затем файл с выделенным кодом со всем вашим Java-кодом. (На самом деле я подозреваю, что ASP.NET был создан после этого, но это не главное)

Я успешно преобразовал макет HTML в тот, который мне нужен, и установил свои собственные файлы CSS / JavaScript в заголовке. Есть только одна проблема - вещь Faces одержима включением также своих собственных таблиц стилей CSS. Звучит разумно, конечно, но по какой-то ошеломительной причине эти таблицы стилей также считают необходимым переопределить стили для всех общих тегов - <body>, <div>, <span> и т. Д. Что раздражает, потому что это нарушает мой дизайн , Теперь я мог бы изменить свои собственные таблицы стилей, чтобы переопределить эти стандартные таблицы стилей Faces, но это кажется ... ну, это не правильное решение. Это как обходной путь, а не как «правильное» решение. Зачем мне переопределять атрибуты шрифта для каждого тега, когда он должен легко каскадироваться вниз от тега "body"?

Есть ли способ, как я могу сказать Faces не включать свои собственные таблицы стилей? В любом случае я не буду использовать их элементы управления - только текстовые поля и кнопки. И ярлыки, когда я их найду. : P

О, да, и я попытался воссоздать все это простым JSP (без Faces), но это не удалось, потому что от него зависит код программы (там есть какая-то большая библиотека) ... Это также причина, почему я не могу переместить его в ASP.NET, с которым я так хорошо знаком. <Ч /> Добавлено: Поскольку кажется, что существует множество фреймворков Java Faces, вот фрагмент кода, который может помочь:

<jsp:root version="1.2" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://www.sun.com/web/ui">
    <jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
        <f:view>
            <ui:page id="page1">
                <ui:html id="html1">
                    <ui:head id="head1">

Также я забыл упомянуть, что в NetBeans есть папка под названием «Темы компонентов пользовательского интерфейса Sun», в которой находятся три элемента - «Серая тема», «Зеленая тема» и «Тема по умолчанию». Я могу выбрать один из них в качестве активного, и это также изменит CSS, который включен по умолчанию. К сожалению, я не могу выбрать ни одного.

ОК, я уже изменил свой стиль, чтобы переопределить эти таблицы стилей. Тем не менее, было бы приятно услышать больше о том, с чем я имею дело здесь. Я даже не знаю, где мне искать документацию ...

Добавлено 2: Кроме того, пространство имен, скажем, TextField, равно com.sun.rave.web.ui.component.

1 Ответ

1 голос
/ 30 января 2009

Какая библиотека JSF (JavaServer Faces) используется? MyFaces? RichFaces? Что-то другое?
Я не знаю, нашли ли вы этот ресурс: JSF Tag lib . Если он использует теги <ui:, то он также использует Facelets, который является системой шаблонов для JSF. Тем не менее, параметр тега, который вы, вероятно, ищете, это styleClass и Style.

Для стандартного JSF действительно нет стиля по умолчанию, и я думаю, что, вероятно, есть еще одна библиотека JSF, которая используется. В каталоге WEB-INF, вероятно, находится каталог lib, в котором находятся файлы jar. Это должно дать вам представление о том, какие библиотеки используются.

RichFaces поставляется со своим собственным стилем и полностью подходит для темы. В вашем конкретном случае это будет более болезненно, чем стоит в вашей ситуации. Другие библиотеки JSF могут делать то же самое.

К сожалению, я могу лишь указать вам места и идеи о том, где может быть проблема. Учитывая огромное количество вариантов, когда дело доходит до JSF, это лучшее, что я могу сделать.

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