jsp 뷰를 생성하기 위해 freemarker 템플릿을 만들고 있습니다. 양식의 각 필드가 부동이고 열의 전체 너비를 차지하는 레이아웃을 2 열에서 사용합니다.동적 레이아웃을위한 FTL 템플릿을 작성하는 방법은 무엇입니까?
각 필드 유형은 필드를 쉽게 추가하고 제거하기 위해 독립적 인 FTL에 있습니다. 데이터를 채우기 위해 XML을 사용하여, FMPP와
<#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][email protected][0]?has_content >id="${grupoCampos[0][email protected][0]!}"</#if> <#if grupoCampos[0][email protected][0]?has_content >style="${grupoCampos[0][email protected][0]!}"</#if>>
<#list grupoCampos?children as nodos>
<#if nodos?node_type = 'element' && chequearPermisos(nodos[0][email protected]ermiso[0]!"all")>
<#if ((nodos[0][email protected][0]!"todos") == 'todos' || (nodos[0][email protected][0]!"todos") == tipoFormulario)>
<div style="${nodos[0][email protected][0]!}" <#if nodos[0][email protected][0]?has_content>id="${nodos[0][email protected][0]!}"</#if> class="${nodos?node_name} ${nodos[0][email protected][0]!}">
<#list nodos?children as campo>
<#if campo?node_type = 'element' && chequearPermisos(campo[0][email protected][0]!"all")>
<#if ((campo[0][email protected][0]!"todos") == 'todos' || (campo[0][email protected][0]!"todos") == tipoFormulario)>
<#switch campo?node_name>
<#case "subtitulo">
<div class="subtitulo " style="${campo[0][email protected][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 실행 :
FTL 템플릿은 다음과 같은 코드가 있습니다.
내가보기의 레이아웃을 조정해야 할 때 나는 데 문제는,이 레이아웃 형태로 2 열 설계되었으며 I을 수행해야한다 :
- 레이아웃에 머리글 또는 열을 추가
- 변화 배경 색상이나 이미지, 글꼴 크기 및 색상
- 내가 #IF으로 FTL을 복잡하게하지 않고 작업을 수행하는 방법을 모르는
헤더에 이미지를 추가 CSS의 각 부분을 표시한다 ~ 그러면 큰 xml을가집니다.
freemarket에는 레이아웃이 있습니까? 예를 들어 보거나 사용할 수 있습니까?
아이디어는 Java에서 웹 시스템과 간단한 웹 페이지의 단일 세트를 계속 사용하는 것입니다.
이 문제를 구현하는 데있어 더 구체적으로 설명해야한다고 생각합니다. 너는 어떤 자세로 붙어 있니? 마찬가지로 손으로 편집 한 JSP/CSS로 원하는 것을 얻을 수 있다면 FMPP로 동일한 출력을 생성 할 수없는 이유는 무엇입니까? – ddekany
나는 손으로 편집 한 JSP로/CSS를 할 수 있지만 너무 많은 if와 레이블을 사용하지 않고 freemarker에서 어떻게하는지 모른다. 내가 내 질문을 향상 – Aegis
[Freemarker : 하위 변수의 동적 보간] 가능한 중복 (http://stackoverflow.com/questions/12392822/freemarker-dynamic-interpolation-of-sub-variables) –