丁香五月婷婷黄色视频_97在线看观看免费_男女xo嘿咻嘿咻动态图_最近更新在线中文字幕人妻

?

mq翻譯主題模板中的代碼 編程寶庫

日期:2023-03-11 12:39:36 / 人氣: 413 / 發(fā)布者:成都翻譯公司

這些對象負責確定如何訪問模板,在這個GTVG應(yīng)用程序中,org.ServletContextTemplateResolver我們將從Servlet上下文中檢索模板文件作為資源的方式:javax.模板引擎對象是org.模板解析器是唯一需要的參數(shù)TemplateEngine,盡管稍后將介紹許多其他參數(shù)(消息解析器,緩存大小等)。多語言文本我們的第一個任務(wù)是為我們的雜貨網(wǎng)站創(chuàng)建一個主頁。

Thymeleaf 主題商店

本指南的這一章和后續(xù)章節(jié)中顯示的示例的源代碼可以在 Good Thymes Virtual Grocery GitHub 存儲庫中找到。

1. 網(wǎng)上商店

為了更好地解釋使用 Thymeleaf 處理模板所涉及的概念mq翻譯主題模板中的代碼,本教程將使用可從項目網(wǎng)站下載的演示應(yīng)用程序。

這個應(yīng)用程序是一個虛構(gòu)的虛擬雜貨網(wǎng)站,將為我們提供許多場景來展示 Thymeleaf 的許多功能。

首先,我們的應(yīng)用程序需要一組簡單的模型實體:通過創(chuàng)建產(chǎn)品進行銷售。我們還將管理這些:CustomersOrdersCommentsProducts。

我們的應(yīng)用程序還有一個非常簡單的服務(wù)層,由包含以下方法的 Service 對象組成:

public class ProductService {
    ...
    public List findAll() {
        return ProductRepository.getInstance().findAll();
    }
    public Product findById(Integer id) {
        return ProductRepository.getInstance().findById(id);
    }
}

在 web 層,我們的應(yīng)用程序?qū)⒂幸粋€過濾器,它將根據(jù)請求 URL 將執(zhí)行委托給啟用了 Thymeleaf 的命令:

private boolean process(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    try {
        // This prevents triggering engine executions for resource URLs
        if (request.getRequestURI().startsWith("/css") ||
                request.getRequestURI().startsWith("/images") ||
                request.getRequestURI().startsWith("/favicon")) {
            return false;
        }
        /*
         * Query controller/URL mapping and obtain the controller
         * that will process the request. If no controller is available,
         * return false and let other filters/servlets process the request.
         */
        IGTVGController controller = this.application.resolveControllerForRequest(request);
        if (controller == null) {
            return false;
        }
        /*
         * Obtain the TemplateEngine instance.
         */
        ITemplateEngine templateEngine = this.application.getTemplateEngine();
        /*
         * Write the response headers
         */
        response.setContentType("text/html;charset=UTF-8");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        /*
         * Execute the controller and process view template,
         * writing the results to the response writer.
         */
        controller.process(
                request, response, this.servletContext, templateEngine);
        return true;
    } catch (Exception e) {
        try {
            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        } catch (final IOException ignored) {
            // Just ignore this
        }
        throw new ServletException(e);
    }
}

這是我們的 IGTVGController 接口:

public interface IGTVGController {
    public void process(
            HttpServletRequest request, HttpServletResponse response,
            ServletContext servletContext, ITemplateEngine templateEngine);    
}

我們現(xiàn)在要做的就是創(chuàng)建 IGTVGController 接口的實現(xiàn),從服務(wù)中檢索數(shù)據(jù)并使用 ITemplateEngine 對象來處理模板。

但首先讓我們看看模板引擎是如何初始化的。

2. 創(chuàng)建和配置模板引擎

我們過濾器中的 process(...) 方法包含以下幾行:

ITemplateEngine templateEngine = this.application.getTemplateEngine();

這意味著 GTVGApplication 類負責創(chuàng)建和配置 Thymeleaf 應(yīng)用程序中*重要的對象之一:TemplateEngine 實例(ITemplateEngine 接口的實現(xiàn))。

我們的 org.thymeleaf.TemplateEngine 對象初始化如下:

public class GTVGApplication {
    ...
    private final TemplateEngine templateEngine;
    ...
    public GTVGApplication(final ServletContext servletContext) {
        super();
        ServletContextTemplateResolver templateResolver =
                new ServletContextTemplateResolver(servletContext);
        // HTML is the default mode, but we set it anyway for better understanding of code
        templateResolver.setTemplateMode(TemplateMode.HTML);
        // This will convert "home" to "/WEB-INF/templates/home.html"
        templateResolver.setPrefix("/WEB-INF/templates/");
        templateResolver.setSuffix(".html");
        // Template cache TTL=1h. If not set, entries would be cached until expelled
        templateResolver.setCacheTTLMs(Long.valueOf(3600000L));
        // Cache is set to true by default. Set to false if you want templates to
        // be automatically updated when modified.
        templateResolver.setCacheable(true);
        this.templateEngine = new TemplateEngine();
        this.templateEngine.setTemplateResolver(templateResolver);
        ...
    }
}

有很多方法可以配置 TemplateEngine 對象,但是現(xiàn)在這幾行代碼足以告訴我們所需的步驟。

3. 模板解析器

讓我們從模板解析器開始:

ServletContextTemplateResolver templateResolver =
        new ServletContextTemplateResolver(servletContext);

模板解析器是一個實現(xiàn) Thymeleaf API 接口的對象,名為 org.thymeleaf.templateresolver.ITemplateResolver:

public interface ITemplateResolver {
    ...
    /*
     * Templates are resolved by their name (or content) and also (optionally) their
     * owner template in case we are trying to resolve a fragment for another template.
     * Will return null if template cannot be handled by this template resolver.
     */
    public TemplateResolution resolveTemplate(
            final IEngineConfiguration configuration,
            final String ownerTemplate, final String template,
            final Map templateResolutionAttributes);
}

這些對象負責確定如何訪問模板。在這個 GTVG 應(yīng)用程序 org.thymeleaf.templateresolver.ServletContextTemplateResolver 中,我們將從 Servlet 上下文中檢索模板文件作為資源: javax.servlet.ServletContext 存在于每個 Java Web 應(yīng)用程序中 應(yīng)用程序范圍的對象和資源是從 Web 應(yīng)用程序根解析的.

但這并不是我們可以說的模板解析器的全部,因為我們可以在其上設(shè)置一些配置參數(shù)。一、模板模式:

templateResolver.setTemplateMode(TemplateMode.HTML);

HTML 是默認模板模式 ServletContextTemplateResolver,但*好構(gòu)建它,以便我們的代碼清楚地記錄正在發(fā)生的事情。

templateResolver.setPrefix("/WEB-INF/templates/");
templateResolver.setSuffix(".html");

修改前綴和后綴,我們將模板名稱傳遞給引擎,以獲取真正要使用的資源名稱。

使用此配置,模板名稱“產(chǎn)品/列表”將對應(yīng)于:

servletContext.getResourceAsStream("/WEB-INF/templates/product/list.html")

(可選)在模板解析器中通過 cacheTTLMs 屬性配置解析模板可以在緩存中存活的時間量:

templateResolver.setCacheTTLMs(3600000L);

如果達到*大緩存大小并且它是當前緩存中*舊的條目,則在達到 TTL 之前,模板仍然可以從緩存中排除。

用戶可以通過實現(xiàn) ICacheManager 接口或修改 StandardCacheManager 對象來定義緩存行為和大小來管理默認緩存。

關(guān)于模板解析器還有很多需要學(xué)習(xí),但現(xiàn)在讓我們看看模板引擎對象的創(chuàng)建。

4. 模板引擎

模板引擎對象是 org.thymeleaf.ITemplateEngine 接口的實現(xiàn)。其中一個實現(xiàn)由 Thymeleaf 核心提供:org.thymeleaf.TemplateEngine 我們在這里創(chuàng)建一個實例:

templateEngine = new TemplateEngine();
templateEngine.setTemplateResolver(templateResolver);

很簡單mq翻譯主題模板中的代碼,不是嗎?我們所需要的只是創(chuàng)建一個實例并將模板解析器設(shè)置為它。

模板解析器是唯一需要的參數(shù)TemplateEngine,雖然很多其他參數(shù)(消息解析器、緩存大小等)會在后面介紹。現(xiàn)在這就是我們所需要的。

我們的模板引擎現(xiàn)已準備就緒,我們可以使用 Thymeleaf 開始創(chuàng)建頁面。

下一節(jié):Thymeleaf 文字 Thymeleaf 教程

1. 多語言文本 我們的第一個任務(wù)是為我們的雜貨網(wǎng)站創(chuàng)建一個主頁。這個頁面的第一個版本非常簡單:只有標題和歡迎信息。這是我們的 /WEB-INF/templates/home.html 文件:

相關(guān)閱讀Relate

  • 法國簽證營業(yè)執(zhí)照翻譯件模板 你與申根簽證只有一條推送的距離
  • 江蘇省增值稅發(fā)票翻譯模板 江蘇稅務(wù)局出口貨物退(免)稅申報管理系統(tǒng)軟件
  • 肄業(yè)證書翻譯模板 復(fù)旦大學(xué)學(xué)生學(xué)業(yè)證明文書管理細則(試行)
  • 四級英語作文模板帶翻譯 大學(xué)英語四級翻譯模擬訓(xùn)練及答案
  • 社會某信用代碼證翻譯模板 js驗證某社會信用代碼,某社會信用代碼 驗證js,js+驗證+社會信用代碼證
  • 美國移民證件翻譯模板 日語簽證翻譯聊聊身份證翻譯模板
  • 翻譯軟件模板 人類史上*實用的的文檔快速翻譯指南
  • 江蘇省增值稅發(fā)票翻譯模板 江蘇出口貨物退(免)稅申報管理服務(wù)平臺
  • 瑞士簽證房產(chǎn)證翻譯件模板 瑞士探親簽證—就讀子女
  • 日語戶口本翻譯模板 戶口本翻譯價格_戶口本翻譯一般多少錢?
  • mq翻譯主題模板中的代碼 編程寶庫 www.angeldealglobal.com/fymb/4853.html
    ?
    本站部分內(nèi)容和圖片來源于網(wǎng)絡(luò)用戶和讀者投稿,不確定投稿用戶享有完全著作權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護條例》,如果侵犯了您的權(quán)利,請聯(lián)系:chinazxzy@163.com,及時刪除。
    Go To Top 回頂部
    • 掃一掃,微信在線