Hướng dẫn generating html from java - tạo html từ java

Tôi đang sử dụng MVC Spring để tạo dịch vụ. Dịch vụ này sẽ nhận được một số dữ liệu từ cơ sở dữ liệu. Sau đó, tôi muốn nó đọc một mẫu JSP từ một nơi khác, không phải từ Web-inf. Có các thuộc tính là dữ liệu từ cơ sở dữ liệu sẽ được truyền vào khi đọc mẫu này. Sau đó, nó sẽ trả về một chuỗi bao gồm nguồn JSP. Chuỗi này bây giờ sẽ chứa dữ liệu thay thế các biến JSP. Cuối cùng, chuỗi này nên được ghi vào một tệp (tệp .html).

Tôi không thể tìm thấy một hướng dẫn về nó. Thay vào đó, tôi nhận thấy hầu hết các tệp JSP đang được gửi dưới dạng phản hồi và được hiển thị trên trình duyệt.

Xin vui lòng giúp đỡ. Thannks.

Bạn có thể sử dụng mùa xuân với thymeleaf.

Thymeleaf là một thư viện dựa trên Java được sử dụng để tạo một ứng dụng web. Nó cung cấp hỗ trợ tốt để phục vụ XHTML/HTML5 trong các ứng dụng web. Trong chương này, bạn sẽ tìm hiểu chi tiết về Thymeleaf.

Hướng dẫn này hướng dẫn bạn qua quá trình tạo một trang web Hello Hello, World World với Spring.

Những gì bạn sẽ xây dựng

Bạn sẽ xây dựng một ứng dụng có trang chủ tĩnh và điều đó cũng sẽ chấp nhận các yêu cầu HTTP nhận được tại: http://localhost:8080/greeting.

Nó sẽ trả lời với một trang web hiển thị HTML. Cơ thể của HTML sẽ chứa một lời chào: Xin chào, thế giới!

Giá trị tham số name ghi đè giá trị mặc định của World và được phản ánh trong phản hồi bởi nội dung thay đổi thành Hello Hello, người dùng!

Những gì bạn cần

  • Khoảng 15 phút

  • Một trình soạn thảo văn bản yêu thích hoặc IDE

  • JDK 1.8 trở lên

  • Gradle 4+ hoặc Maven 3.2+

  • Bạn cũng có thể nhập mã thẳng vào IDE của mình:

    • Bộ công cụ mùa xuân (STS)

    • Ý tưởng intellij

Cách hoàn thành hướng dẫn này

Giống như hầu hết các hướng dẫn bắt đầu mùa xuân, bạn có thể bắt đầu từ đầu và hoàn thành từng bước hoặc bạn có thể bỏ qua các bước thiết lập cơ bản đã quen thuộc với bạn. Dù bằng cách nào, bạn kết thúc với mã làm việc.

Để bỏ qua những điều cơ bản, hãy làm như sau:skip the basics, do the following:

  • Tải xuống và giải nén kho lưu trữ nguồn cho hướng dẫn này hoặc nhân bản nó bằng Git: git clone https://github.com/spring-guides/gs-serving-web-content.git

  • CD vào

    
    
     
        Getting Started: Serving Web Content 
        
    
    
        

    0

  • Nhảy về phía trước để tạo một bộ điều khiển web.

Khi bạn hoàn thành, bạn có thể kiểm tra kết quả của mình so với mã trong



 
    Getting Started: Serving Web Content 
    


    

1., you can check your results against the code in


 
    Getting Started: Serving Web Content 
    


    

1.

Bắt đầu với Spring Inititalizr

Bạn có thể sử dụng dự án được khởi tạo trước này và nhấp vào Tạo để tải xuống tệp ZIP. Dự án này được cấu hình để phù hợp với các ví dụ trong hướng dẫn này.

Để khởi tạo thủ công dự án:

  1. Điều hướng đến https://start.spring.io. Dịch vụ này kéo theo tất cả các phụ thuộc bạn cần cho một ứng dụng và thực hiện hầu hết các thiết lập cho bạn.

  2. Chọn Gradle hoặc Maven và ngôn ngữ bạn muốn sử dụng. Hướng dẫn này giả định rằng bạn đã chọn Java.

  3. Nhấp vào phụ thuộc và chọn Spring Web, Thymeleaf và Spring Boot DevTools.Dependencies and select Spring Web, Thymeleaf, and Spring Boot DevTools.

  4. Nhấp vào Tạo.Generate.

  5. Tải xuống tệp zip kết quả, đây là kho lưu trữ của ứng dụng web được cấu hình với các lựa chọn của bạn.

Nếu IDE của bạn có tích hợp khởi tạo lò xo, bạn có thể hoàn thành quy trình này từ IDE của mình.
Bạn cũng có thể chia rẽ dự án từ GitHub và mở nó trong IDE hoặc trình soạn thảo khác của bạn.

Tạo bộ điều khiển web

Trong cách tiếp cận mùa xuân để xây dựng các trang web, các yêu cầu HTTP được xử lý bởi bộ điều khiển. Bạn có thể dễ dàng xác định bộ điều khiển bằng chú thích



 
    Getting Started: Serving Web Content 
    


    

2. Trong ví dụ sau,


 
    Getting Started: Serving Web Content 
    


    

3 xử lý nhận các yêu cầu cho


 
    Getting Started: Serving Web Content 
    


    

4 bằng cách trả về tên của một


 
    Getting Started: Serving Web Content 
    


    

5 (trong trường hợp này là


 
    Getting Started: Serving Web Content 
    


    

6). A


 
    Getting Started: Serving Web Content 
    


    

5 chịu trách nhiệm hiển thị nội dung HTML. Danh sách sau (từ


 
    Getting Started: Serving Web Content 
    


    

8) hiển thị bộ điều khiển:

package com.example.servingwebcontent;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class GreetingController {

	@GetMapping("/greeting")
	public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
		model.addAttribute("name", name);
		return "greeting";
	}

}

Bộ điều khiển này ngắn gọn và đơn giản, nhưng có rất nhiều điều đang diễn ra. Chúng tôi chia nhỏ nó từng bước.

Chú thích



 
    Getting Started: Serving Web Content 
    


    

9 đảm bảo rằng HTTP nhận được các yêu cầu đến


 
    Getting Started: Serving Web Content 
    


    

4 được ánh xạ tới phương thức
package com.example.servingwebcontent;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ServingWebContentApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServingWebContentApplication.class, args);
    }

}
1.

package com.example.servingwebcontent;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ServingWebContentApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServingWebContentApplication.class, args);
    }

}
2 liên kết giá trị của tham số chuỗi truy vấn name vào tham số name của phương thức
package com.example.servingwebcontent;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ServingWebContentApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServingWebContentApplication.class, args);
    }

}
1. Tham số chuỗi truy vấn này không phải là
package com.example.servingwebcontent;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ServingWebContentApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServingWebContentApplication.class, args);
    }

}
6. Nếu không có trong yêu cầu,
package com.example.servingwebcontent;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ServingWebContentApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServingWebContentApplication.class, args);
    }

}
7 của World được sử dụng. Giá trị của tham số name được thêm vào đối tượng
java -jar build/libs/gs-serving-web-content-0.1.0.jar
0, cuối cùng làm cho nó có thể truy cập vào mẫu xem.

Việc triển khai cơ thể phương thức dựa vào công nghệ xem (trong trường hợp này là thymeleaf) để thực hiện kết xuất phía máy chủ của HTML. Thymeleaf phân tích mẫu

java -jar build/libs/gs-serving-web-content-0.1.0.jar
1 và đánh giá biểu thức
java -jar build/libs/gs-serving-web-content-0.1.0.jar
2 để hiển thị giá trị của tham số
java -jar build/libs/gs-serving-web-content-0.1.0.jar
3 được đặt trong bộ điều khiển. Danh sách sau (từ
java -jar build/libs/gs-serving-web-content-0.1.0.jar
4) hiển thị mẫu
java -jar build/libs/gs-serving-web-content-0.1.0.jar
1:



 
    Getting Started: Serving Web Content 
    


    

Hãy chắc chắn rằng bạn có thymeleaf trên đường dẫn lớp của bạn (tọa độ tạo tác:
java -jar build/libs/gs-serving-web-content-0.1.0.jar
6). Nó đã có trong các mẫu "ban đầu" và "hoàn chỉnh" trong GitHub.

Một tính năng phổ biến của việc phát triển các ứng dụng web là mã hóa một thay đổi, khởi động lại ứng dụng của bạn và làm mới trình duyệt để xem thay đổi. Toàn bộ quá trình này có thể ăn hết thời gian. Để tăng tốc chu kỳ làm mới này, Spring Boot cung cấp với một mô-đun tiện dụng được gọi là Spring-Boot-Devtools. Spring Boot DevTools:

  • Cho phép hoán đổi nóng.

  • Chuyển đổi động cơ mẫu để vô hiệu hóa bộ nhớ đệm.

  • Cho phép Livereload tự động làm mới trình duyệt.

  • Mặc định hợp lý khác dựa trên sự phát triển thay vì sản xuất.

Chạy ứng dụng

Mùa xuân khởi tạo tạo một lớp ứng dụng cho bạn. Trong trường hợp này, bạn không cần sửa đổi thêm lớp được cung cấp bởi Spring Inititalizr. Danh sách sau (từ

java -jar build/libs/gs-serving-web-content-0.1.0.jar
7) hiển thị lớp ứng dụng:

package com.example.servingwebcontent;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ServingWebContentApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServingWebContentApplication.class, args);
    }

}

java -jar build/libs/gs-serving-web-content-0.1.0.jar
8 là một chú thích thuận tiện thêm tất cả những điều sau đây:

  • java -jar build/libs/gs-serving-web-content-0.1.0.jar
    9: Thẻ lớp là nguồn định nghĩa đậu cho bối cảnh ứng dụng.

  • java -jar target/gs-serving-web-content-0.1.0.jar
    0: Nói với Spring Boot để bắt đầu thêm đậu dựa trên cài đặt đường dẫn lớp, các loại đậu khác và các cài đặt thuộc tính khác nhau. Ví dụ: nếu
    java -jar target/gs-serving-web-content-0.1.0.jar
    1 nằm trên đường dẫn lớp, chú thích này gắn cờ ứng dụng dưới dạng ứng dụng web và kích hoạt các hành vi chính, chẳng hạn như thiết lập
    java -jar target/gs-serving-web-content-0.1.0.jar
    2.

  • java -jar target/gs-serving-web-content-0.1.0.jar
    3: Nói với Spring để tìm kiếm các thành phần, cấu hình và dịch vụ khác trong gói
    java -jar target/gs-serving-web-content-0.1.0.jar
    4, cho phép nó tìm các bộ điều khiển.

Phương pháp

java -jar target/gs-serving-web-content-0.1.0.jar
5 sử dụng phương thức Spring Boot
java -jar target/gs-serving-web-content-0.1.0.jar
6 để khởi chạy một ứng dụng. Bạn có nhận thấy rằng không có một dòng XML nào không? Không có tệp
java -jar target/gs-serving-web-content-0.1.0.jar
7. Ứng dụng web này là Java thuần túy 100% và bạn không phải đối phó với việc định cấu hình bất kỳ hệ thống ống nước hoặc cơ sở hạ tầng nào.

Xây dựng một cái lọ thực thi

Bạn có thể chạy ứng dụng từ dòng lệnh với Gradle hoặc Maven. Bạn cũng có thể xây dựng một tệp JAR thực thi duy nhất có chứa tất cả các phụ thuộc, lớp và tài nguyên cần thiết và chạy điều đó. Xây dựng một bình có thể thực thi giúp bạn dễ dàng vận chuyển, phiên bản và triển khai dịch vụ như một ứng dụng trong suốt vòng đời phát triển, trên các môi trường khác nhau, v.v.

Nếu bạn sử dụng Gradle, bạn có thể chạy ứng dụng bằng cách sử dụng

java -jar target/gs-serving-web-content-0.1.0.jar
8. Ngoài ra, bạn có thể xây dựng tệp JAR bằng cách sử dụng
java -jar target/gs-serving-web-content-0.1.0.jar
9 và sau đó chạy tệp JAR, như sau:

java -jar build/libs/gs-serving-web-content-0.1.0.jar

Nếu bạn sử dụng Maven, bạn có thể chạy ứng dụng bằng cách sử dụng



 
    Getting Started: Serving Web Content 
    


    

Get your greeting here

0. Ngoài ra, bạn có thể xây dựng tệp JAR với


 
    Getting Started: Serving Web Content 
    


    

Get your greeting here

1 và sau đó chạy tệp JAR, như sau:

java -jar target/gs-serving-web-content-0.1.0.jar

Đầu ra ghi nhật ký được hiển thị. Ứng dụng nên được tăng và chạy trong vài giây.

Kiểm tra ứng dụng

Cung cấp tham số chuỗi truy vấn name bằng cách truy cập



 
    Getting Started: Serving Web Content 
    


    

Get your greeting here

3. Lưu ý cách tin nhắn thay đổi từ "Xin chào, thế giới!" Để "Xin chào, người dùng!"

Sự thay đổi này chứng minh rằng sự sắp xếp

package com.example.servingwebcontent;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ServingWebContentApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServingWebContentApplication.class, args);
    }

}
2 trong


 
    Getting Started: Serving Web Content 
    


    

3 đang hoạt động như mong đợi. Tham số name đã được cung cấp giá trị mặc định là World, nhưng nó có thể được ghi đè rõ ràng thông qua chuỗi truy vấn.

Thêm một trang chủ

Tài nguyên tĩnh, bao gồm HTML và JavaScript và CSS, có thể được phục vụ từ ứng dụng khởi động mùa xuân của bạn bằng cách thả chúng vào đúng vị trí trong mã nguồn. Theo mặc định, Spring Boot phục vụ nội dung tĩnh từ các tài nguyên trong đường dẫn lớp tại



 
    Getting Started: Serving Web Content 
    


    

Get your greeting here

8 (hoặc


 
    Getting Started: Serving Web Content 
    


    

Get your greeting here

9). Tài nguyên http://localhost:8080/greeting0 rất đặc biệt bởi vì, nếu nó tồn tại, nó được sử dụng làm trang "` chào mừng, ________ 61). Do đó, bạn cần tạo tệp sau (mà bạn có thể tìm thấy trong http://localhost:8080/greeting2):



 
    Getting Started: Serving Web Content 
    


    

Get your greeting here

Bản tóm tắt

Xin chúc mừng! Bạn vừa phát triển một trang web bằng cách sử dụng Spring.

Xem thêm