diff --git a/src/fr/devinsy/kiss4web/demo/website/xidyn/Index_xhtml.java b/src/fr/devinsy/kiss4web/demo/website/xidyn/Index_xhtml.java
new file mode 100644
index 0000000..0ddb6f2
--- /dev/null
+++ b/src/fr/devinsy/kiss4web/demo/website/xidyn/Index_xhtml.java
@@ -0,0 +1,389 @@
+/**
+ * Copyright (C) 2016 Christian Pierre MOMON
+ *
+ * This file is part of Kiss4web.
+ *
+ * Kiss4web is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Kiss4web is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Kiss4web. If not, see
+ */
+package fr.devinsy.kiss4web.demo.website.xidyn;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringEscapeUtils;
+
+import fr.devinsy.kiss4web.demo.website.FatalView;
+import fr.devinsy.util.strings.StringList;
+import fr.devinsy.xidyn.data.SimpleTagData;
+import fr.devinsy.xidyn.pages.Page;
+import fr.devinsy.xidyn.pages.PageFactory;
+
+/**
+ *
+ */
+public class Index_xhtml extends HttpServlet
+{
+ private static final long serialVersionUID = 1513508164890999104L;
+ private static org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(Index_xhtml.class);
+
+ /**
+ *
+ */
+ @Override
+ public void doGet(final HttpServletRequest request, final HttpServletResponse response) throws IOException, ServletException
+ {
+ logger.debug("doGet starting…");
+
+ try
+ {
+ //
+ logger.debug("doGet starting…");
+
+ // Get parameters.
+ // ===============
+ // Locale locale = kiwa.getUserLocale(request);
+ // Long accountId = kiwa.getAuthentifiedAccountId(request,
+ // response);
+
+ // Use parameters.
+ // ===============
+
+ // Send response.
+ // ==============
+ Page demoPage = PageFactory.instance().create("/fr/devinsy/kiss4web/demo/website/xidyn/index.html");
+
+ // Step #01.
+ {
+ try
+ {
+ System.out.println("----------------------------");
+
+ String htmlSource = "
");
+ display.append("+").appendln(" ");
+ display.append("page.setIterationStrategy(\"v\", SimpleTagData.IterationStrategy.ALL_ROWS);").appendln(" ");
+ display.append("=>").appendln(" ");
+ display.append(StringEscapeUtils.escapeXml(htmlTarget).replace("\n", " \n").replace(" ", " \n")).appendln(" ");
+
+ demoPage.setContent("demo5.5", display.toString());
+ }
+ catch (Exception exception)
+ {
+ demoPage.setContent("demo5.1", exception.getMessage());
+ }
+ }
+
+ //
+ Page charter = PageFactory.instance().create("/fr/devinsy/kiss4web/demo/website/charter/charter.html");
+ charter.include("content_container", demoPage);
+ String html = charter.dynamize().toString();
+
+ // Display page.
+ response.setContentType("application/xhtml+xml; charset=UTF-8");
+ response.getWriter().println(html);
+ }
+ catch (Exception exception)
+ {
+ FatalView.show(request, response, exception);
+ }
+
+ logger.debug("doGet done.");
+ }
+
+ /**
+ *
+ */
+ @Override
+ public void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException
+ {
+ doGet(request, response);
+ }
+
+ /**
+ *
+ */
+ @Override
+ public void init() throws ServletException
+ {
+ }
+}
+
+// ////////////////////////////////////////////////////////////////////////
diff --git a/src/fr/devinsy/kiss4web/demo/website/dispatcher/Raw_hello_xhtml.java b/src/fr/devinsy/kiss4web/demo/website/xidyn/Raw_hello_xhtml.java
similarity index 97%
rename from src/fr/devinsy/kiss4web/demo/website/dispatcher/Raw_hello_xhtml.java
rename to src/fr/devinsy/kiss4web/demo/website/xidyn/Raw_hello_xhtml.java
index 7a7e8e8..a7a5b1f 100644
--- a/src/fr/devinsy/kiss4web/demo/website/dispatcher/Raw_hello_xhtml.java
+++ b/src/fr/devinsy/kiss4web/demo/website/xidyn/Raw_hello_xhtml.java
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Kiss4web. If not, see
*/
-package fr.devinsy.kiss4web.demo.website.dispatcher;
+package fr.devinsy.kiss4web.demo.website.xidyn;
import java.io.IOException;
import java.io.PrintWriter;
diff --git a/src/fr/devinsy/kiss4web/demo/website/xidyn/index.html b/src/fr/devinsy/kiss4web/demo/website/xidyn/index.html
new file mode 100644
index 0000000..f6cb2fc
--- /dev/null
+++ b/src/fr/devinsy/kiss4web/demo/website/xidyn/index.html
@@ -0,0 +1,89 @@
+
+
+
+
+ Kiss4web
+
+
+
+
+
+
+
+
Dispatcher Xidyn
+
+ Template is another step of the web application requirements. How dynamize a static HTML file with data?
+
+
+ There is many frameworks about template activity.
+ Almost every time, the solution is to add one more layer above the HTML grammar, and sometimes into.
+ Do you imagine how to manage dozens pages containing corrupt HTML? It is weird.
+
+
+
+ Kiss4web offers a simple solution: use the id of HTML tag to modify them.
+
+
+
Instanciate page
+
+ A page is defined by:
+
+
a presenter: the entity which dynamize template
+
dynamic data: data to put in the template
+
+
+
+ Many HTML sources are available to instanciate a page:
+
+
+
Source
+
Example
+
+
+
String
+
new Page("<div name='pseudo'>a pseudo</div>")
+
+
+
File
+
new Page("/home/foo/files/index.html")
+
+
+
URL from network
+
new Page("http://www.devinsy.fr/foo/index.html")
+
+
+
URL from Java package
+
new Page("/fr/devinsy/kiss4web/demo/website/xidyn/index.html")