Java библиотека для HTML элементов / тегов - PullRequest
1 голос
/ 11 апреля 2010

Кто-нибудь знает достойную библиотеку Java для элементов HTML?

Например, если я хочу создать img-элемент, я бы выбрал новое изображение (...)

Объект должен поддерживать обычные функции / атрибуты HTML, такие как настройка CSS или отключение.

Ответы [ 3 ]

2 голосов
/ 11 апреля 2010

Джакарта ECS звучит как то, что вы ищете.

0 голосов
/ 11 апреля 2010

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

Есть два пути, один из которых - это готовые веб-фреймворки, основанные на компонентах, которые являются предпочтительным способом, так как в этих вещах уже есть много вещей, продуманных и реализованных для вас. Например, Apache Wicket , Apache Tapestry и Google Web Toolkit - все они основаны только на некоторых компонентах.

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

  1. Возьмите любую библиотеку DOM-манипуляций, такую ​​как JDOM , DOM4J , XOM и т. Д. Конечно, вы также можете использовать нативную библиотеку Java, но в основном это огромная библиотека. боль в заднице, чтобы использовать широко.
  2. Напишите фабричные методы / классы-оболочки для каждого отдельного тега, например изображения. Например, это может быть содержимое класса Image с использованием JDOM:

.

public interface MyElement<T extends org.jdom.Content> {
    T getElement();
}

public class Image implements MyElement<org.jdom.Element> {

    private final String source;

    public Image(String source) {
        this.source = source;
    }


    public org.jdom.Element getElement() {
        return new Element("img").setAttribute("src", source);
    }
}

и в некотором классе компонентов, описывающем всю страницу, вы затем добавляете экземпляр этого класса в структуру списка / дерева, а затем просто, наконец, вызываете getElement () для получения разметки, специфичной для тега, где это применимо. Обратите внимание, что это намного сложнее, чем кажется, в основном из-за необходимой вложенной структуры XML.

0 голосов
/ 11 апреля 2010

Попробуйте кобра .

Cobra - это чистый Java HTML рендер и DOM-парсер разработан для поддержки HTML 4, Javascript и CSS 2.

Cobra может использоваться как анализатор HTML с поддержкой Javascript и CSS, независимо от движка рендеринга Cobra. Javascript DOM изменения, которые происходят во время синтаксического анализа (например, через document.write) отражаться в разобранном DOM, если Javascript не отключен.

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