Bạn có thể sử dụng html trong java không?
Chủ đề này trình bày cách triển khai cơ bản về cách tạo tệp HTML bằng Java. Bạn có thể tạo tài liệu HTML bằng Java bằng các lệnh gọi API đơn giản. Các tệp HTML có thể được tạo nhanh chóng theo chương trình và có thể được sử dụng trong các ứng dụng khác nhau như tạo báo cáo hoặc hóa đơn Show Các bước để tạo tệp HTML bằng Java
Để tạo tệp HTML bằng Java, trước tiên chúng tôi sẽ tạo phiên bản HTMLDocument Class mặc định. Sử dụng phương thức createTextNode, chúng tôi sẽ thêm văn bản HTML mong muốn cho tài liệu. Sau đó, chúng tôi sẽ sử dụng Lớp văn bản để thêm văn bản HTML bên trong phần thân của HTML. Cuối cùng, chúng tôi sẽ lưu tài liệu HTML vào đĩa trong Java bằng cách sử dụng các lệnh gọi API đơn giản Mã để tạo tài liệu HTML trong JavaTrong chủ đề trước, chúng ta đã học cách trích xuất văn bản từ tệp DXF bằng Java. Trong khi chủ đề này trong Java tạo tài liệu HTML có thể được sử dụng cho các báo cáo hoặc hóa đơn có thể được hiển thị trong trình duyệt Cập nhật. kỹ thuật này không còn hoạt động vì phản ánh tên đã bị xóa trong các phiên bản Java sau này. Đây là một cách tiếp cận khác. Một cách sử dụng khác của phản xạ tham số lambda có thể là viết nội tuyến html trong Java. Nó cho phép chúng tôi tạo các trình xây dựng như thế này, bằng Java, nơi mà trước đây chúng tôi phải sử dụng một ngôn ngữ như Kotlin và một thư viện như Kara String doc = html( head( meta(charset -> "utf-8"), link(rel->stylesheet, type->css, href->"/my.css"), script(type->javascript, src -> "/some.js") ), body( h1("Hello World", style->"font-size:200%;"), article( p("Here is an interesting paragraph"), p( "And another", small("small") ), ul( li("An"), li("unordered"), li("list") ) ) ) ).asString(); Chuỗi doc = html( head( meta(charset -> "utf-8"), link(rel->stylesheet, type->css, href->"/my. css"), script(type->javascript, src -> "/some. js") ), nội dung ( h1("Xin chào thế giới", kiểu->"cỡ chữ. 200%;"), bài viết( p("Đây là một đoạn thú vị"), p( "Và một đoạn khác", small("nhỏ") ), ul( li("An"), li("không có thứ tự"), . với kiểu là chuỗi(); Cái nào tạo ra html như
<. DOCTYPE html CÔNG KHAI "-//W3C//DTD HTML 4. 01//EN"> Xin chào thế giớiĐây là một đoạn thú vị Và một đoạn khác Tạo mãTại sao bạn sẽ làm điều này? . e. g. chúng ta có thể lập trình tạo các đoạn văn body( asList("one","two","three") .stream() .map(number -> "Paragraph " + number) .map(content -> p(content)) ) nội dung ( asList("một","hai","ba"). dòng(). map(số -> "Đoạn" + số). map(nội dung -> p(nội dung)) ) Trợ giúp từ Hệ thống LoạiChúng tôi cũng có thể sử dụng hệ thống loại Java để giúp chúng tôi viết mã hợp lệ Nó sẽ là một lỗi thời gian biên dịch để chỉ định một thuộc tính không hợp lệ cho liên kết rel Đó là một lỗi thời gian biên dịch để bỏ qua một thẻ bắt buộc Nó cũng là một lỗi thời gian biên dịch để có một thẻ body bên trong một thẻ p, bởi vì body không phải là Chúng tôi cũng có thể đảm bảo rằng kích thước hình ảnh tính bằng pixel Sự an toànChúng tôi cũng có thể giúp giảm thiểu các cuộc tấn công chèn khi chèn nội dung từ người dùng vào phần đánh dấu của chúng tôi, bằng cách mã hóa html DSL bất kỳ nội dung nào được chuyển vào e. g assertEquals( " assertEquals( " ", p("").asString() );Làm thế nào nó hoạt động?Xem bài đăng trên blog trước đây cho biết cách lấy tên tham số lambda với sự phản chiếu. Điều này cho phép chúng tôi chỉ định các cặp giá trị khóa cho các thuộc tính html khá rõ ràng Tôi đã tạo một Attributetype chuyển đổi lambda thành thuộc tính html public interface Attribute<T> extends NamedValue<T> { default String asString() { return name() + "=\"" + value()+"\""; } } public interface Attribute Đối với bản thân các thẻ, chúng tôi khai báo một giao diện cho mỗi thẻ, với hệ thống phân cấp để cho phép các thẻ nhất định trong các ngữ cảnh nhất định. Ví dụ: Small là PhrasingContent và có thể nằm trong thẻ P public interface Small extends PhrasingContent { default Small small(String content) { return () -> tag("small", content); } } giao diện công cộng Mở rộng nhỏ PhrasingContent { mặc định Nhỏ nhỏ (Nội dung chuỗi) { return () -> thẻ ("nhỏ", nội dung); Để dễ dàng có sẵn tất cả các tên thẻ trong ngữ cảnh mà không cần phải nhập tĩnh nhiều thứ, chúng ta có thể tạo giao diện “mixin” kết hợp tất cả các thẻ public interface HtmlDsl extends Html, Head, Body, Link, Meta, P, Script, H1, Li, Ul, Article, Small, Img ... giao diện công khai HtmlDsl mở rộng Html, Head, Body, Link, Meta, P, Script, H1, Li, Ul, Article, Small, Img Sau đó, nơi chúng tôi muốn viết html, chúng tôi chỉ cần làm cho lớp của chúng tôi triển khai HtmlDsl (Hoặc chúng tôi có thể nhập tĩnh các phương thức thay thế Chúng tôi có thể đặt các hạn chế đối với thẻ nào hợp lệ bằng cách sử dụng các phương thức quá tải cho tên thẻ. e. g. HTML public interface Html extends NoAttributes { default Html html(Head head, Body body) { ... giao diện công khai Html extends NoAttributes { default Html html(Head head, Body body) { và hạn chế các loại thuộc tính bằng cách sử dụng enum hoặc các loại trình bao bọc khác. Ở đây thẻ Img chỉ có thể có số đo bằng pixel ________số 8 public interface Img extends NoChildren { default Img img(Attribute Tất cả các mã có sẵn trên github để chơi với. Hãy xem bài kiểm tra này để biết các ví dụ thực thi. N. b. nó chỉ là một bằng chứng về khái niệm vào thời điểm này. Chỉ có đủ mã tồn tại để minh họa các ví dụ trong bài đăng trên blog này Làm cách nào để sử dụng HTML trong tệp Java?Các bước để tạo tệp HTML bằng Java . Định cấu hình dự án của bạn bằng cách thêm Aspose. Tệp JAR HTML từ Kho lưu trữ Maven Khởi tạo một thể hiện đối tượng HTMLDocument trống Thêm thể hiện của lớp phần tử Văn bản để giữ văn bản cho tài liệu HTML Chèn phần tử Văn bản bên trong nội dung HTML Lưu tệp HTML đã tạo vào đĩa Chúng ta có thể sử dụng HTML và CSS với Java không?Các ứng dụng khách phong phú trong Java được thực hiện bằng Swing hoặc SWT. Nếu bạn muốn sử dụng HTML/CSS cho giao diện người dùng của mình, bạn cần sử dụng mô hình máy chủ/máy khách . Nó có thể đơn giản như tạo một máy chủ cục bộ và khởi chạy một trình duyệt kết nối với nó, nhưng nó vẫn sẽ là mô hình đó. |