jsp ビューを生成するための freemarker テンプレートを作成しています。フォームの各フィールドがフローティングで、列の幅全体を占める 2 列のレイアウトを使用する。
各フィールド タイプは独立した FTL にあり、フィールドを簡単に追加および削除できます。
FTL テンプレートには次のコードがあります。
<#if (data)?has_content>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<#include "estructura/Cabecera.ftl">
<s:include value="${tipoFormulario}_${data.Artefacto.nombreSubModulo?lower_case}_scripts.jsp"></s:include>
</head>
<body>
<div class="" id="dim-listas">
<s:fielderror />
</div>
<s:form theme="simple" action="Mostrar${data.Artefacto.nombreSubModulo?cap_first}.action">
<#-- Estructura en columnas, parseo usando CSS -->
<#list data.Artefacto.formulario.grupoCampos as grupoCampos>
<div class="grupoCampos" <#if grupoCampos[0].@id[0]?has_content >id="${grupoCampos[0].@id[0]!}"</#if> <#if grupoCampos[0].@estilo[0]?has_content >style="${grupoCampos[0].@estilo[0]!}"</#if>>
<#list grupoCampos?children as nodos>
<#if nodos?node_type = 'element' && chequearPermisos(nodos[0].@permiso[0]!"all")>
<#if ((nodos[0].@mostrar[0]!"todos") == 'todos' || (nodos[0].@mostrar[0]!"todos") == tipoFormulario)>
<div style="${nodos[0].@estilo[0]!}" <#if nodos[0].@id[0]?has_content>id="${nodos[0].@id[0]!}"</#if> class="${nodos?node_name} ${nodos[0].@tipo[0]!}">
<#list nodos?children as campo>
<#if campo?node_type = 'element' && chequearPermisos(campo[0].@permiso[0]!"all")>
<#if ((campo[0].@mostrar[0]!"todos") == 'todos' || (campo[0].@mostrar[0]!"todos") == tipoFormulario)>
<#switch campo?node_name>
<#case "subtitulo">
<div class="subtitulo " style="${campo[0].@estilo[0]!}">${campo[0]}</div>
<#break>
<#case "texto">
<#-- campo de texto -->
<#include "campos/Campos Texto.ftl">
</#switch>
</#if>
</#if>
</#list>
</div>
</#if>
</#if>
</#list>
</div>
</#list>
</s:form>
<#include "estructura/Pie.ftl">
</body>
</html>
<#else>
<@pp.dropOutputFile />
</#if>
この FTL は FMPP で実行され、XML を使用してデータを入力します。
私が抱えている問題は、ビューのレイアウトを調整する必要がある場合です。このレイアウトはフォーム 2 列用に設計されており、次のことを行う必要があります。
- ヘッダーまたは複数の列をレイアウトに追加する
- 背景色または画像、フォント サイズ、および色を変更する
- ヘッダーに画像を追加する
FTL を #IF で複雑にせずにそれを行う方法がわかりません。CSS の各部分をマークしてから、大きな xml を作成します。
たとえば、フリーマーケットには、表示または使用できるレイアウトがありますか?
アイデアは、単一の FTL セット、Web システム、および単純な Web ページを Java で使用し続けることです。