2010-08-27 27 views
31

Tôi luôn tìm kiếm một thư viện Java hiện đại giúp việc tạo các đoạn mã HTML (X) hợp lệ trở nên dễ dàng.Thư viện Java HTML (chống mẫu)?

Có, bạn có thể sử dụng ngôn ngữ templating nhưng có những lúc bạn không muốn làm điều này bởi vì Java có một số lợi thế hơn chèn ngôn ngữ khuôn mẫu yêu thích của bạn.

Tôi đã thấy rất nhiều nhà xây dựng HTML trong nhà trong nhiều dự án nhưng không có Trình tạo HTML-Commons mà tôi có thể tìm thấy.

Có ai biết không?

Nó sẽ là lý tưởng nếu nó tận dụng lợi thế của hệ thống kiểu 5/6/7 Java (generics) và hỗ trợ Fluent Style. Hoặc một cái gì đó giống như phong cách thông thạo tức là chuỗi phong cách JQuery, hoặc một máy nhà nước được sử dụng trong các thư viện nhại như JMock (nói một cách theo kiểu Monad).

Một người xây dựng ví dụ thô có thể là:

new Html().title("stuff").body().in().div().in().h1("Hello World").hr(); 

Một ví dụ khác: http://codemonkeyism.com/the-best-markup-builder-i-could-build-in-java/

tôi đã kết thúc bằng văn bản của riêng tôi: Java Anti-template Language (JATL)

+0

Một lựa chọn khác là sử dụng JAXB của thạo Plugin –

Trả lời

33

tôi đã kết thúc bằng văn bản thư viện của riêng tôi gọi Java Anti-template Language (JATL)

+0

Có vẻ tốt, bạn vẫn đang cập nhật nó? –

+0

Đúng. Tôi cần thêm HTML 5 sớm. Có thể thêm nó trong một vài tuần. Nó cũng bây giờ trong repo maven công cộng. –

+2

Công việc tuyệt vời! Sẽ tốt hơn nếu các phần tử bên trong có thể đi vào bên trong các hàm tạo như: 'body (h1(), div (table (...)))' –

3

Bạn đã thử các dự án Jakarta Element Construction Set (ECS)?

Nó không thực sự là một API thông thạo - nhắc tôi nhiều hơn về StringBuilder hơn Mockito ... Nhưng về mặt chức năng tôi nghĩ đó là những gì bạn đang theo đuổi.

+0

Đây chắc chắn là một bước đi đúng hướng (+1) –

+1

Tôi nghĩ rằng chúng tôi có một người chiến thắng. Thật là một tên dự án SEO không thân thiện khủng khiếp :) Quyền của bạn có lẽ không thực sự thành thạo vì nó sẽ liên quan đến một cỗ máy nhà nước. Nếu bất cứ điều gì thực sự của nó giống như một Monad. Hãy suy nghĩ JQuery. –

+0

Nó vẫn có vẻ khó chịu với tôi và không hỗ trợ XHTML. –

3

Đặt cược tốt nhất của bạn có thể là sử dụng thư viện XML và hiển thị kết quả dưới dạng HTML.

I.E. Dom4J xác định một lớp HtmlWriter cho đầu ra XML dành riêng cho HTML.

Nhưng bạn vẫn phải tạo api của riêng mình trên đầu trang để thực sự tạo tài liệu.

+0

Các probablem gây phiền nhiễu với Dom4J thiếu sự hỗ trợ của Generics. tức là node.elements() trả về một Danh sách không phải Danh sách Nhưng thư viện XML yêu thích của tôi cho Java –

+0

Tôi muốn in HTML trực tiếp và thoát khỏi tất cả các biến bằng tay thay vì bất kỳ thư viện XML nào. Để làm với HTML, thư viện XML có thể làm cho mã xấu xí và cực kỳ dài. –