Foros del Web » Programación para mayores de 30 ;) » Java »

Freemarker con Eclipse

Estas en el tema de Freemarker con Eclipse en el foro de Java en Foros del Web. Hola, estoy empezando a utilizar el Eclipse, y tengo que usar freemarker con el, pero no se bien que debo hacer para que el Eclipse ...
  #1 (permalink)  
Antiguo 02/09/2008, 06:58
 
Fecha de Ingreso: septiembre-2008
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Freemarker con Eclipse

Hola,

estoy empezando a utilizar el Eclipse, y tengo que usar freemarker con el, pero no se bien que debo hacer para que el Eclipse reconozca el codigo de freemarker, ni en que archivo o carpeta tengo que escribir el codigo.

He estado mirando el manual i los docs de la pagina pero no me lo acaban de aclarar.

Si alguien me pudiera ayudar se lo agradecia mucho.

Gracias.
  #2 (permalink)  
Antiguo 02/09/2008, 08:26
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Freemarker con Eclipse

Los ficheros de freemarker son ficheros de texto puro y no tienen por que ir en ningun sitio en especial, mientras despues configures adecuadamente el FreeMarker para que te los encuentre.

Respecto a que Eclipse reconozca el código FreeMarker... existe un plugin ("freemarker eclipse plugin" en google, primer hit) pero aunque ayuda algo, conviene saber que está obsoleto y no reconoce algunas cosas que se han ido introduciendo en la sintaxis.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 04/09/2008, 02:49
 
Fecha de Ingreso: septiembre-2008
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Freemarker con Eclipse

hola,

una vez creado el template con freemarker y el data-model con java en eclipse, tengo problemas para ver el resultado. En el java estan añadidas las librerias de freemarker para que reconozca los diferentes metodos, y no hay fallos de codigo, pero no consigo poder ver el resultado de la combinacion de los dos. No se si es por no ejecutar de manera correcta o que el eclipse no acaba de reconocer bien el freemarker.

Una vez tienes la plantillas (.ftl) y el java, como puedo ver el resultado final? a ver si lo estoy haciendo mal...

Gracias y un saludo
  #4 (permalink)  
Antiguo 04/09/2008, 03:55
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Freemarker con Eclipse

El Eclipse no hace nada con la plantilla y el data model, para ver el resultado tienes que utilizar la libreria FreeMarker para procesar el data model con la plantilla, configurando ciertas cosas etc.
Lo explica en el manual de FreeMarker, sección "Getting started":
http://www.freemarker.org/docs/pgui_quickstart.html

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #5 (permalink)  
Antiguo 04/09/2008, 09:05
 
Fecha de Ingreso: septiembre-2008
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Freemarker con Eclipse

he conseguido configurar para que me coja del data-model elementos de un hashmap (por ejemplo) pero no hay manera que detecte una lista que he creado.

Si saco por pantalla en el entorno java la lista creada, la detecta sin problemas, es decir, que en cuanto a codigo java esta bien, pero al llamarla desde el .ftl salta un error que dice que no encuentra la lista.

En configuracion puse:

Configuration cfg = new Configuration();

cfg.setDirectoryForTemplateLoading(new File("WEB-INF/templates"));

cfg.setObjectWrapper(new DefaultObjectWrapper());

Template temp = cfg.getTemplate("test1.ftl");


y para la la lista

List lista = new List();

seguido de sus lista.add(arg1, arg2);
...
...
...

Alguna idea??

Gracias
  #6 (permalink)  
Antiguo 04/09/2008, 09:34
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Freemarker con Eclipse

No muestras la parte en que asignas la lista como modelo de datos a aplicarle el template, ni tampoco muestras el template, ni el error que te da.

Se necesitan conocer esos datos saber lo que está pasando, si no es imposible.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #7 (permalink)  
Antiguo 04/09/2008, 10:21
 
Fecha de Ingreso: septiembre-2008
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Freemarker con Eclipse

En el template pongo dentro del body

<#list lista as x>
${x_index + 1}.${x}<#if x_has_next>,</#if>
</#list>

El error que da es :

freemarker.core.InvalidReferenceException: Expression lista is undefined on line 12, columna 8 in test1.ftl

El problema es que no se como definirla para que el .ftl coja esta lista de nombre "lista".


Al final pongo

Writer out = new OutputStreamWriter(System.out);
temp.process(root,out); <-- aqui saco elementos del hashmap, pero no se como hacer para poder sacar tb la lista o todos los elementos que quiera.
out.flush();
  #8 (permalink)  
Antiguo 04/09/2008, 11:46
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Freemarker con Eclipse

¿Que relacion hay entre root y lista? Lo digo por que no veo en ningun momento que añadas lista al modelo de datos, que es root. Si root es un Map, bastaria con hacer root.put("lista",lista) antes de hacer el temp.process(root,out).

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #9 (permalink)  
Antiguo 08/09/2008, 04:04
 
Fecha de Ingreso: septiembre-2008
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Freemarker con Eclipse

Le puse la assignacion a la lista pero sigue sin cogerla. Copio exactamente lo que tengo a ver si puedes ayudarme.

En el java:

package Example;

import java.awt.List;
import java.io.File;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;


public class Test {

public static void main(String[] args) throws Exception {

/* ******* CONFIGURACION DEL TEMPLATE *********** */

Configuration cfg = new Configuration();

cfg.setDirectoryForTemplateLoading(new File("WEB-INF/templates"));

cfg.setObjectWrapper(new DefaultObjectWrapper());

/* PROCESO DEL TEMPLATE */

Template temp = cfg.getTemplate("test1.ftl");

/* ENTORNO PARA EL TEMPLATE */

Map root = new HashMap();
List lista = new List();
root.put("lista", lista);
Map animals = new HashMap();

root.put("animals", animals);
root.put("user", "Bill");
root.put("numero_enter", 23.539898903);

animals.put("raton", "Mickey");

lista.add("raton");
animals.put("elefante", "Loli");
lista.add("elefante");
animals.put("piton", "Paqui");
lista.add("piton");

Map raton = new HashMap();
raton.put("tamaño", "pequeño");
raton.put("precio", "50");

Map elefante = new HashMap();
elefante.put("tamaño", "grande");
elefante.put("precio", "5000");

Map piton = new HashMap();
piton.put("tamaño", "medio");
piton.put("precio", "4999");

root.put("test", "Esto es un test");

Map queno = new HashMap();
queno.put("causa", "no se");

Writer out = new OutputStreamWriter(System.out);
temp.process(root, out);
out.flush();
}
}

y en el template:

<html>
<head>
<title>Welcome! Primer exemple de Freemarker (llistat) </title>
</head>
<body>
<h1>Welcome!</hi>
<p> Nuestro amigo ${user} fue a comprar un animal.

<p> Habian los siguientes animales:

<#list root.lista as x> Esta es la lista que no coje (tb probe con solo poner lista)
${x}<#if x_has_next>,</#if>
</#list>


<p>El raton se llamava ${animals.raton} y valia ${animals.piton.precio} el precio no lo coje
<p> ${test}. Strings correctes

<p> #{numero_enter; m4} Els numeros correcte

</body>
</html>
  #10 (permalink)  
Antiguo 08/09/2008, 08:15
 
Fecha de Ingreso: septiembre-2008
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Freemarker con Eclipse

De momento consegui que me listado los items de la lista poniendo un iterator en el data-model, o hay alguna manera mas sencilla de hacerlo???


ahora solo falta descubrir para que me salga la variable "precio" del ejemplo

Última edición por Mfolky; 08/09/2008 a las 08:39
  #11 (permalink)  
Antiguo 08/09/2008, 09:52
 
Fecha de Ingreso: septiembre-2008
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Freemarker con Eclipse

Ya esta arreglado lo de la variable (es lo que passa al estar empezando en esto xD).

Solo me gustaria que alguien me dijero si lo de la lista se puede hacer de otra manera o esta es la manera mas correcta.

Gracias.
  #12 (permalink)  
Antiguo 09/09/2008, 00:43
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Freemarker con Eclipse

Por lo que dice el manual, http://freemarker.sourceforge.net/do...ctWrapper.html, prueba a crear root con un SimpleHash en vez de con un Map.

Cita:
SimpleHash root = new SimpleHash();
Supuestamente, a partir de eso los objetos que le añadas a root ya se encapsularan en sus "wrappers" correspondientes.

Yo le paso XML a FreeMarker, asi que no he tenido que pelearme con este tema en concreto.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.

Última edición por GreenEyed; 09/09/2008 a las 03:16
  #13 (permalink)  
Antiguo 09/09/2008, 03:11
 
Fecha de Ingreso: septiembre-2008
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Freemarker con Eclipse

No consigo que funcione con el SimpleHash, pero bueno voy a mirar de pasar-lo por XML a ver que tal va y si tengo problemas.
  #14 (permalink)  
Antiguo 09/09/2008, 07:46
 
Fecha de Ingreso: septiembre-2008
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Freemarker con Eclipse

Provado con XML y realmente es muchissimo mas facil y no tienes tantos problemas.
  #15 (permalink)  
Antiguo 08/08/2016, 09:20
 
Fecha de Ingreso: agosto-2016
Ubicación: Madrid
Mensajes: 1
Antigüedad: 7 años, 8 meses
Puntos: 0
Pregunta Ofuscación de datos en Freemarker Eclipse

Estoy teniendo un quebradero de cabeza con la ofuscación de datos en una de mis webs. Por temas de seguridad necesito "enmascarar" parte de los caracteres del email.

Pongamos como ejemplo lo siguiente:

[email protected]

Con una expresión regular debo encontrar la manera de enmascarar los 5 caracteres anteriores al @ y los 3 posteriores, para que el resultado sea este:

emailp*****@***inio.com

Y en el caso de que los caracteres anteriores al arroba no lleguen a 5 insertar de igual forma los 5 asteriscos, ejemplo:

[email protected]

Resultado:

*****@***inio.com

Gracias por la ayuda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:02.