MongoDB-Java-4-FreeMarker

Merhaba Arkadaşlar ,

Bİr önceki yazımda Spark Framework’ü Projemize eklemiş ve test etmiştik. Ancak web projesi geliştirirken mutlaka HTML çıktılara ihtiyacımız var. Bunun için Lightweight bir Java Template Engine olan Freemarker kullanıcaz. Ayrıntılı bilgi  http://freemarker.org/ bu linkten alabilirsiniz.

Yine pom.xml dosyamıza aşağıdaki depency i ekliyoruz.

<dependency>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker</artifactId>
  <version>2.3.20</version>
</dependency>

Freemarker MVC template mimarisi ile çalışıyor. Aşağıdaki tanımdan göreceğiniz gibi Java Objelerine yüklenen nesneleri Template içinde basıyor. MVC hakkında ayrıntılıyı bilgiyi internetten bulabilirsiniz.

Eclipse’in ve Maven’in versiyonuna göre değişiklik gösterebildiği için src/main dizini altına “resources” isimli bir klasör eğer yoksa oluşutun ve içine templatemizi koyalım. Benim kullandığım template;

<html>
	<head>
		<title>Welcome</title>
	</head>
	<body>
		<h1>Welcome!! ${name}</h1>
	</body>
</html>

Basit şekilde bu bilgileri vermemin sebebi ilerideki yazılarda boşluk bırakmamak.

import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class HelloWorldFreeMarker {

	public static void main(String[] args) {
		Configuration conf = new Configuration();
		conf.setClassForTemplateLoading(HelloWorldFreeMarker.class, "/");

		try {
			Template helloTemplate = conf.getTemplate("hello.html"); // İlişkili Template
			StringWriter writer = new StringWriter(); //Template üzerine değerleri yerleştirir
			Map<String, Object> map = new HashMap<String, Object>(); Nesnelerimizi tutar
			map.put("name", "Muharrem Tığdemir");// name değişkenine bir değer atadık

			helloTemplate.process(map, writer); // Yüklenen Template'e map deki değişkenleri yerleştirir.

			System.out.println(writer); // Sonucu ekrana basar.

		} catch (IOException e) {
			e.printStackTrace();
		} catch (TemplateException e) {
			e.printStackTrace();
		}
	}	

}

Evet temel MVC bilgimizide aldık 🙂 Kodların yanındaki açıklamaların yeterli olduğuna inanıyorum. Sorularınız olursa cevaplamaya çalışacağım. Bu Java Class’ında ${name} yazan bölüme “Muharrem Tığdemir” yazısı ile eşleştirdik.

 

Projenin Son hali mongoproject4

Muharrem Tığdemir

Leave a Reply