Red de conocimiento informático - Material del sitio web - Cómo utilizar freemarker para hacer páginas jsp estáticas

Cómo utilizar freemarker para hacer páginas jsp estáticas

La estructura básica de toda la página de inicio del sitio web es organizar todas las páginas estáticas generadas por freemarker a través de etiquetas de inclusión jsp. El fondo controla la generación de páginas estáticas para cada parte. De esta forma, la página de inicio se puede dividir para facilitar el mantenimiento de las páginas estáticas. Cuando necesitamos generar la parte del "enlace", solo se genera la parte del enlace, sin necesidad de regenerar la página completa.

El siguiente es el método principal que uso freemarker para generar páginas estáticas.

/**

* Generar método principal de página estática

* @param context ServletContext

* @param datos en datos Resultado del mapa set

* @param templatePath ruta de la plantilla ftl

* @param targetHtmlPath Ruta para generar páginas estáticas

*/

public static void crateHTML(Contexto ServletContext, Maplt; datos, String templatePath, String targetHtmlPath){

Configuración freemarkerCfg = new Configuration();

//Cargar plantilla

freemarkerCfg .setServletContextForTemplateLoading(context, "/");

freemarkerCfg.setEncoding(Locale.getDefault(, "/")). getRealPath("/html") "/" targetHtmlPath;

Archivo htmlFile = nuevo archivo(htmlPath);

Escritor = nuevo BufferedWriter(nuevo OutputStreamWriter(nuevo FileOutputStream(htmlFile), "UTF-8"));

//Plantillas de procesamiento

template.process(data, out);

out.flush();

out.close();

} captura (Excepción e) {

e.printStackTrace();

}

}

Esto es realmente muy simple. Simplemente busque en Google y habrá una gran cantidad de código relevante. También busco código en Google y lo modifico yo mismo para adaptarlo a mis necesidades. Simplemente explique los parámetros:

ServletContext: Esto es evidente. Aquellos que hacen java web deben saber que solo struts2 usa este método para obtener ServletActionContext.getServletContext ()

Maplt; String, Objectgt; freemarker envía datos a la plantilla ftl a través de Map.

Ahora utiliza enlaces como columnas para explicar en detalle cómo generar páginas estáticas. Se pueden deducir otros módulos por analogía.

Cadena templatePath: la ruta donde se encuentra ftl.

Aquí está la ruta relativa al sitio web, y luego la ruta absoluta se obtiene a través de ServerContext.

Cadena targetHtmlPath: la ruta de la página estática final: uso la ruta relativa del sitio web y luego obtengo la ruta absoluta a través de ServerContext.

El enlace se basa en este códigolt;jsp:include page="/html/index_link.html" flush="true"gt;lt;/jsp:includegt;lt;/jsp:includegt; necesito freemarker Genera un archivo index_link.html. Las fuentes de datos vinculadas se obtienen mediante consultas a bases de datos.

Luego, escriba un método utilizado específicamente para generar páginas estáticas con enlaces amigables:

/**

* Generar página estática con enlaces amigables index_link.html

* @param context

* @param data

*//

public static void createIndexFriendLink(ServletContext context, Maplt; String, Objectgt; data ){

crateHTML(context, data, "index_ link.ftl", "index_link.html");

}

Este método llama al createHTML anterior. método.

Luego, de acuerdo con el método anterior, podemos consultar los datos dentro de la acción Struts2, importar el mapa desde la base de datos y llamar al método createIndexFriendLink () para generar una página estática.

Este es un método en la acción:

/**

* Generar una página estática de enlace amigable index_link.html

* @return

*/

public String createLink(){

// Verificación de permiso

if(! this.isAccess( ) )

devuelve "error";

intenta{

// Obtener friendLink

Lista de enlaces = friendLinkDAO.findAll();

// Preparar datos

HashMaplt; String, Objectgt; datos = new HashMaplt; String, Objectgt (); , enlaces);

Llame al método de página estática

HTML.NET.CREATEIndexFriendLink().

createIndexFriendLink(ServletActionContext.getServletContext(), data);

addActionMessage("¡Página estática generada correctamente!") )

return "message";

}catch (Excepción e){

e.printStackTrace();

devuelve "fallo";

}

}

}

Enlaces de lista = friendLinkDAO.findAll(); hiberate DAO mediante la acción de inyección de resorte para llevar los datos a la lista y luego a través del siguiente código

HashMaplt; Objectgt; data = new HashMaplt.String, Objectgt ();

data.put("links", links

Llame al método createIndexFriendLink() para preparar los datos.

Lo siguiente es: código fuente de la plantilla ftl:

lt; #if links?size = 0gt; div class="link"gt; ;

lt;stronggt; Enlaces: lt;/stronggt;

lt;#listar enlaces como enlacegt;

lt;a href="${ enlace linkUrl}" target="_blank" title="${link.linkName}"gt;${link.linkName}lt;/agt;

lt;/#listgt;

lt; /divgt;

lt; #elsegt;

lt; / #ifgt;