簡體   English   中英

Java中沒有HTML代碼的REST實現

[英]REST implementation without HTML code in Java

在許多教程或示例中,我都看到了。 大多數人將html代碼放在Java文件中。 我想知道是否還有另一種方法或更好的做法,而不是像這樣寫。

@Path("/someExample")
public class SomeExample{
@GET
    @Produces(MediaType.TEXT_HTML)
    public String sayHtmlHello() {
        return "<html> " + "<title>" + "Hello World RESTful Jersey"
                + "</title>" + "<body><h1>" + "Hello World RESTful Jersey"
                + "</body></h1>" + "</html> ";
}

我是Web服務的新手,我想知道可以從html文件本身返回的內容而不是上面的內容嗎?

如果您希望返回動態HTML,則最好使用MVC框架(例如Spring MVC )而不是REST框架。 如果您想堅持使用相同的REST框架,如果您使用的是Jersey, Jersey具有MVC支持

MVC框架如何工作的總體思路是使用模板和控制器來填充模板中使用的模型。 在偽代碼中,您可能會遇到類似

模板(index.html)

<html>
   <body>
      <h1>Hello {{ name }}</h1>
   </body>
<html>

控制器方式

public Viewable index() {
    Map<String, String> model = new HashMap<>()
    model.put("name", "Peeskillet");
    return new Viewable("index", model);
}

這是可以與Jersey(及其MVC支持)一起使用的示例代碼,但是使用Spring MVC,該概念仍然適用,只是所使用的類不同。

基本概念是在控制器內部填充模型,並告訴框架應使用哪個模板。 框架將采用模板,並在您需要它們的任何地方注入變量,然后將轉換后的視圖返回給客戶端。

您應該確定要使用的框架,並閱讀上面鏈接的文檔以獲取更多詳細信息。 Spring MVC是專門作為MVC框架制作的,其中Jersey是一個REST框架,后來又添加了MVC支持。 因此,您將獲得Spring MVC的更多功能。 但是對於基本的MVC功能,可以使用Jersey。

順便說一句,如果您已經來自MVC框架(例如Spring MVC)背景,那么您需要稍微改變一下思路。 使用REST API(或稱為Web服務)時,通常不會發送HTML頁面響應。 通常,它將是重量較輕的數據格式,例如JSON。 如果要創建與REST API交互的Web應用程序,通常將使用AJAX(Javascript)來請求JSON,並且它使用JSON數據來更新DOM。 通常就是這樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM