<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Labs Zsrv Net &#187; Freemarker</title>
	<atom:link href="http://labs.zsrv.net/tag/freemarker/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.zsrv.net</link>
	<description>About Gadget, iPhone, Android and so on.</description>
	<lastBuildDate>Sun, 16 May 2010 03:41:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>[struts2]struts2とFreemarkerで、テンプレートの実行時エラー表示を抑制する</title>
		<link>http://labs.zsrv.net/2010/03/struts2struts2%e3%81%a8freemarker%e3%81%a7%e3%80%81%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%e3%81%ae%e5%ae%9f%e8%a1%8c%e6%99%82%e3%82%a8%e3%83%a9%e3%83%bc%e8%a1%a8%e7%a4%ba%e3%82%92/</link>
		<comments>http://labs.zsrv.net/2010/03/struts2struts2%e3%81%a8freemarker%e3%81%a7%e3%80%81%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%e3%81%ae%e5%ae%9f%e8%a1%8c%e6%99%82%e3%82%a8%e3%83%a9%e3%83%bc%e8%a1%a8%e7%a4%ba%e3%82%92/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 07:27:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Freemarker]]></category>
		<category><![CDATA[Struts2]]></category>

		<guid isPermaLink="false">http://labs.zsrv.net/?p=455</guid>
		<description><![CDATA[struts2でFreemarkerを使っているとそのままでは、テンプレートにエラーが あった場合に、そのまま黄色画面でエラー(StackTrace)が表示されてしまう。 それを出力されないようにするための、FreemarkerManagerを作って設定する。 (これよりもっとスマートな方法はないものか&#8230;) import javax.servlet.ServletContext; import freemarker.template.TemplateException; import freemarker.template.TemplateExceptionHandler; public class FreemarkerManager extends org.apache.struts2.views.freemarker.FreemarkerManager { @Override protected freemarker.template.Configuration createConfiguration(ServletContext servletContext) throws TemplateException { freemarker.template.Configuration configuration = new freemarker.template.Configuration(); configuration.setTemplateLoader(getTemplateLoader(servletContext)); configuration.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); configuration.setObjectWrapper(getObjectWrapper()); if( mruMaxStrongSize > 0 ) { configuration.setSetting(freemarker.template.Configuration.CACHE_STORAGE_KEY, "strong:" + mruMaxStrongSize); } if (encoding != null) { configuration.setDefaultEncoding(encoding); } loadSettings(servletContext, configuration); return configuration; } [...]]]></description>
			<content:encoded><![CDATA[<p>struts2でFreemarkerを使っているとそのままでは、テンプレートにエラーが<br />
あった場合に、そのまま黄色画面でエラー(StackTrace)が表示されてしまう。</p>
<p>それを出力されないようにするための、FreemarkerManagerを作って設定する。<br />
(これよりもっとスマートな方法はないものか&#8230;)</p>
<pre class="brush:java">
import javax.servlet.ServletContext;

import freemarker.template.TemplateException;
import freemarker.template.TemplateExceptionHandler;

public class FreemarkerManager extends
		org.apache.struts2.views.freemarker.FreemarkerManager {

	@Override
    protected freemarker.template.Configuration createConfiguration(ServletContext servletContext) throws TemplateException {
        freemarker.template.Configuration configuration = new freemarker.template.Configuration();

        configuration.setTemplateLoader(getTemplateLoader(servletContext));

        configuration.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);

        configuration.setObjectWrapper(getObjectWrapper());

        if( mruMaxStrongSize > 0 ) {
            configuration.setSetting(freemarker.template.Configuration.CACHE_STORAGE_KEY, "strong:" + mruMaxStrongSize);
        }

        if (encoding != null) {
            configuration.setDefaultEncoding(encoding);
        }

        loadSettings(servletContext, configuration);

        return configuration;
    }

}
</pre>
<p>struts.xmlに以下を記述。</p>
<pre class="brush:java">
	&lt;!--  freemarker settings --&gt;
	&lt;constant name="struts.freemarker.manager.classname" value="com.bbt757.ktai.freemarker.FreemarkerManager" /&gt;
</pre>
<img src="http://labs.zsrv.net/?ak_action=api_record_view&id=455&type=feed" alt="" /><p><a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Digg" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Google Reader" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Facebook" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Delicious" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/evernote?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Evernote" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/evernote.png" width="16" height="16" alt="Evernote"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B" title="Twitter" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F03%2Fstruts2struts2%25e3%2581%25a8freemarker%25e3%2581%25a7%25e3%2580%2581%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25ae%25e5%25ae%259f%25e8%25a1%258c%25e6%2599%2582%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2582%2592%2F&amp;linkname=%5Bstruts2%5Dstruts2%E3%81%A8Freemarker%E3%81%A7%E3%80%81%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E6%8A%91%E5%88%B6%E3%81%99%E3%82%8B"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://labs.zsrv.net/2010/03/struts2struts2%e3%81%a8freemarker%e3%81%a7%e3%80%81%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%e3%81%ae%e5%ae%9f%e8%a1%8c%e6%99%82%e3%82%a8%e3%83%a9%e3%83%bc%e8%a1%a8%e7%a4%ba%e3%82%92/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Java]FreemarkerのテンプレートでPaging(ページング)処理を行う</title>
		<link>http://labs.zsrv.net/2010/02/javafreemarker%e3%81%ae%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%e3%81%a7paging%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%b3%e3%82%b0%e5%87%a6%e7%90%86%e3%82%92%e8%a1%8c%e3%81%86/</link>
		<comments>http://labs.zsrv.net/2010/02/javafreemarker%e3%81%ae%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%e3%81%a7paging%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%b3%e3%82%b0%e5%87%a6%e7%90%86%e3%82%92%e8%a1%8c%e3%81%86/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 06:51:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Freemarker]]></category>
		<category><![CDATA[Struts2]]></category>

		<guid isPermaLink="false">http://labs.zsrv.net/?p=430</guid>
		<description><![CDATA[以下のようなFunctionを作った。 引数に、リスト、ページあたりに表示する行数、現在ページ数。 &#60;#function paginator list num page&#62; &#60;#assign has_pre = false&#62; &#60;#assign has_next = false&#62; &#60;#if list?size == 0&#62; &#60;#return list&#62; &#60;/#if&#62; &#60;#local start = (page - 1) * num&#62; &#60;#local end = start + num - 1&#62; &#60;#if page gt 1&#62; &#60;#assign has_pre = true&#62; &#60;/#if&#62; &#60;#if end gte list?size - 1&#62; &#60;#local end [...]]]></description>
			<content:encoded><![CDATA[<p>以下のようなFunctionを作った。<br />
引数に、リスト、ページあたりに表示する行数、現在ページ数。</p>
<pre class="brush:html">
&lt;#function paginator list num page&gt;
	&lt;#assign has_pre = false&gt;
	&lt;#assign has_next = false&gt;
	&lt;#if list?size == 0&gt;
		&lt;#return list&gt;
	&lt;/#if&gt;
	&lt;#local start = (page - 1) * num&gt;
	&lt;#local end = start + num - 1&gt;
	&lt;#if page gt 1&gt;
		&lt;#assign has_pre = true&gt;
	&lt;/#if&gt;
	&lt;#if end gte list?size - 1&gt;
		&lt;#local end = list?size - 1&gt;
		&lt;#assign has_next = false&gt;
	&lt;#else&gt;
		&lt;#assign has_next = true&gt;
	&lt;/#if&gt;
	&lt;#return list[start..end]&gt;
&lt;/#function&gt;
</pre>
</p>
<p>使い方的には以下のようになる。</p>
<pre class="brush:html">
&lt;#list paginator(["a", "b", "c", "d", "e"], 2, page) as item&gt;
	${item}&lt;br /&gt;
&lt;/#list&gt;
&lt;#if has_pre&gt;&lt;a href="?page=${page - 1}"&gt;pre&lt;/a&gt;&lt;/#if&gt;
&lt;#if has_next&gt;&lt;a href="?page=${page + 1}"&gt;next&lt;/a&gt;&lt;/#if&gt;
</pre></p>
<img src="http://labs.zsrv.net/?ak_action=api_record_view&id=430&type=feed" alt="" /><p><a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25ae%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25a7paging%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b8%25e3%2583%25b3%25e3%2582%25b0%25e5%2587%25a6%25e7%2590%2586%25e3%2582%2592%25e8%25a1%258c%25e3%2581%2586%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%A7Paging%28%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%29%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86" title="Digg" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25ae%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25a7paging%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b8%25e3%2583%25b3%25e3%2582%25b0%25e5%2587%25a6%25e7%2590%2586%25e3%2582%2592%25e8%25a1%258c%25e3%2581%2586%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%A7Paging%28%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%29%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25ae%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25a7paging%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b8%25e3%2583%25b3%25e3%2582%25b0%25e5%2587%25a6%25e7%2590%2586%25e3%2582%2592%25e8%25a1%258c%25e3%2581%2586%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%A7Paging%28%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%29%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86" title="Google Reader" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25ae%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25a7paging%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b8%25e3%2583%25b3%25e3%2582%25b0%25e5%2587%25a6%25e7%2590%2586%25e3%2582%2592%25e8%25a1%258c%25e3%2581%2586%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%A7Paging%28%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%29%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86" title="Facebook" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25ae%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25a7paging%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b8%25e3%2583%25b3%25e3%2582%25b0%25e5%2587%25a6%25e7%2590%2586%25e3%2582%2592%25e8%25a1%258c%25e3%2581%2586%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%A7Paging%28%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%29%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86" title="Delicious" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25ae%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25a7paging%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b8%25e3%2583%25b3%25e3%2582%25b0%25e5%2587%25a6%25e7%2590%2586%25e3%2582%2592%25e8%25a1%258c%25e3%2581%2586%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%A7Paging%28%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%29%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/evernote?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25ae%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25a7paging%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b8%25e3%2583%25b3%25e3%2582%25b0%25e5%2587%25a6%25e7%2590%2586%25e3%2582%2592%25e8%25a1%258c%25e3%2581%2586%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%A7Paging%28%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%29%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86" title="Evernote" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/evernote.png" width="16" height="16" alt="Evernote"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25ae%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25a7paging%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b8%25e3%2583%25b3%25e3%2582%25b0%25e5%2587%25a6%25e7%2590%2586%25e3%2582%2592%25e8%25a1%258c%25e3%2581%2586%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%A7Paging%28%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%29%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86" title="Twitter" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25ae%25e3%2583%2586%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ac%25e3%2583%25bc%25e3%2583%2588%25e3%2581%25a7paging%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b8%25e3%2583%25b3%25e3%2582%25b0%25e5%2587%25a6%25e7%2590%2586%25e3%2582%2592%25e8%25a1%258c%25e3%2581%2586%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%A7Paging%28%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%29%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://labs.zsrv.net/2010/02/javafreemarker%e3%81%ae%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%e3%81%a7paging%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%b3%e3%82%b0%e5%87%a6%e7%90%86%e3%82%92%e8%a1%8c%e3%81%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Java]FreemarkerのXMLパーサとネームスペース(ns_prefixes)についてのメモ</title>
		<link>http://labs.zsrv.net/2010/02/javafreemarker%e3%81%aexml%e3%83%91%e3%83%bc%e3%82%b5%e3%81%a8%e3%83%8d%e3%83%bc%e3%83%a0%e3%82%b9%e3%83%9a%e3%83%bc%e3%82%b9ns_prefixes%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e3%81%ae%e3%83%a1/</link>
		<comments>http://labs.zsrv.net/2010/02/javafreemarker%e3%81%aexml%e3%83%91%e3%83%bc%e3%82%b5%e3%81%a8%e3%83%8d%e3%83%bc%e3%83%a0%e3%82%b9%e3%83%9a%e3%83%bc%e3%82%b9ns_prefixes%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e3%81%ae%e3%83%a1/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 03:39:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Freemarker]]></category>
		<category><![CDATA[Struts2]]></category>

		<guid isPermaLink="false">http://labs.zsrv.net/?p=421</guid>
		<description><![CDATA[FreemarkerのXMLパーサとネームスペース(ns_prefixes)について 例えば、以下のようにネームスペースが付けられているような、 XMLをFreemarkerのテンプレートでパースして表示しようとすると、 若干躓くことになる。 &#60;?xml version="1.0" encoding="UTF-8" ?&#62; &#60;root xmlns="http://hogehoge.com/xmlns"&#62; &#60;key&#62;hogehoge&#60;/key&#62; &#60;value&#62;hogehoge&#60;/value&#62; &#60;/root&#62; というのも、以下のようなコードでは値が取得できないのだ。 key=${doc.root.key}&#60;br/&#62; value=${doc.root.value} &#60;#-- docはNodeModel --&#62; これは、ネームスペースを使っているためである。 ので、取得するにはこのように書くことになる。 &#60;#ftl ns_prefixes={"xmlns": "http://hogehoge.com/xmlns"}&#62; &#60;#-- 先頭に書くのがいいっぽい。--&#62; &#60;#assign root = doc["xmlns:root"] /&#62; key = ${root["xmlns:key"]}&#60;br/&#62; value = ${root["xmlns:value"]} というような感じで、エレメントを取得するたびにネームスペース を付けてあげる必要がある。 これでは、面倒くさい。 Freemarkerでは、&#8221;D&#8221;がデフォルトとして割り当てられているので、 &#60;#ftl ns_prefixes={"D": "http://hogehoge.com/xmlns"}&#62; と、宣言してあげると、一番最初のコードで各値を取得することが できるようになる。 というメモ。]]></description>
			<content:encoded><![CDATA[<p>FreemarkerのXMLパーサとネームスペース(ns_prefixes)について</p>
<p>例えば、以下のようにネームスペースが付けられているような、<br />
XMLをFreemarkerのテンプレートでパースして表示しようとすると、<br />
若干躓くことになる。</p>
<pre class="brush:xml">
&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;root xmlns="http://hogehoge.com/xmlns"&gt;
	&lt;key&gt;hogehoge&lt;/key&gt;
	&lt;value&gt;hogehoge&lt;/value&gt;
&lt;/root&gt;
</pre>
</p>
<p>というのも、以下のようなコードでは値が取得できないのだ。</p>
<pre class="brush:xml">
key=${doc.root.key}&lt;br/&gt;
value=${doc.root.value}
&lt;#-- docはNodeModel --&gt;
</pre>
</p>
<p>これは、ネームスペースを使っているためである。<br />
ので、取得するにはこのように書くことになる。</p>
<pre class="brush:xml">
&lt;#ftl ns_prefixes={"xmlns": "http://hogehoge.com/xmlns"}&gt;
&lt;#-- 先頭に書くのがいいっぽい。--&gt;

&lt;#assign root = doc["xmlns:root"] /&gt;
key = ${root["xmlns:key"]}&lt;br/&gt;
value = ${root["xmlns:value"]}
</pre>
</p>
<p>というような感じで、エレメントを取得するたびにネームスペース<br />
を付けてあげる必要がある。</p>
<p>これでは、面倒くさい。<br />
Freemarkerでは、&#8221;D&#8221;がデフォルトとして割り当てられているので、</p>
<pre class="brush:xml">
&lt;#ftl ns_prefixes={"D": "http://hogehoge.com/xmlns"}&gt;
</pre>
</p>
<p>と、宣言してあげると、一番最初のコードで各値を取得することが<br />
できるようになる。</p>
<p>というメモ。</p>
<img src="http://labs.zsrv.net/?ak_action=api_record_view&id=421&type=feed" alt="" /><p><a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25aexml%25e3%2583%2591%25e3%2583%25bc%25e3%2582%25b5%25e3%2581%25a8%25e3%2583%258d%25e3%2583%25bc%25e3%2583%25a0%25e3%2582%25b9%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b9ns_prefixes%25e3%2581%25ab%25e3%2581%25a4%25e3%2581%2584%25e3%2581%25a6%25e3%2581%25ae%25e3%2583%25a1%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AEXML%E3%83%91%E3%83%BC%E3%82%B5%E3%81%A8%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%28ns_prefixes%29%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E3%83%A1%E3%83%A2" title="Digg" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25aexml%25e3%2583%2591%25e3%2583%25bc%25e3%2582%25b5%25e3%2581%25a8%25e3%2583%258d%25e3%2583%25bc%25e3%2583%25a0%25e3%2582%25b9%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b9ns_prefixes%25e3%2581%25ab%25e3%2581%25a4%25e3%2581%2584%25e3%2581%25a6%25e3%2581%25ae%25e3%2583%25a1%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AEXML%E3%83%91%E3%83%BC%E3%82%B5%E3%81%A8%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%28ns_prefixes%29%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E3%83%A1%E3%83%A2" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25aexml%25e3%2583%2591%25e3%2583%25bc%25e3%2582%25b5%25e3%2581%25a8%25e3%2583%258d%25e3%2583%25bc%25e3%2583%25a0%25e3%2582%25b9%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b9ns_prefixes%25e3%2581%25ab%25e3%2581%25a4%25e3%2581%2584%25e3%2581%25a6%25e3%2581%25ae%25e3%2583%25a1%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AEXML%E3%83%91%E3%83%BC%E3%82%B5%E3%81%A8%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%28ns_prefixes%29%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E3%83%A1%E3%83%A2" title="Google Reader" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25aexml%25e3%2583%2591%25e3%2583%25bc%25e3%2582%25b5%25e3%2581%25a8%25e3%2583%258d%25e3%2583%25bc%25e3%2583%25a0%25e3%2582%25b9%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b9ns_prefixes%25e3%2581%25ab%25e3%2581%25a4%25e3%2581%2584%25e3%2581%25a6%25e3%2581%25ae%25e3%2583%25a1%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AEXML%E3%83%91%E3%83%BC%E3%82%B5%E3%81%A8%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%28ns_prefixes%29%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E3%83%A1%E3%83%A2" title="Facebook" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25aexml%25e3%2583%2591%25e3%2583%25bc%25e3%2582%25b5%25e3%2581%25a8%25e3%2583%258d%25e3%2583%25bc%25e3%2583%25a0%25e3%2582%25b9%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b9ns_prefixes%25e3%2581%25ab%25e3%2581%25a4%25e3%2581%2584%25e3%2581%25a6%25e3%2581%25ae%25e3%2583%25a1%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AEXML%E3%83%91%E3%83%BC%E3%82%B5%E3%81%A8%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%28ns_prefixes%29%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E3%83%A1%E3%83%A2" title="Delicious" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25aexml%25e3%2583%2591%25e3%2583%25bc%25e3%2582%25b5%25e3%2581%25a8%25e3%2583%258d%25e3%2583%25bc%25e3%2583%25a0%25e3%2582%25b9%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b9ns_prefixes%25e3%2581%25ab%25e3%2581%25a4%25e3%2581%2584%25e3%2581%25a6%25e3%2581%25ae%25e3%2583%25a1%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AEXML%E3%83%91%E3%83%BC%E3%82%B5%E3%81%A8%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%28ns_prefixes%29%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E3%83%A1%E3%83%A2" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/evernote?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25aexml%25e3%2583%2591%25e3%2583%25bc%25e3%2582%25b5%25e3%2581%25a8%25e3%2583%258d%25e3%2583%25bc%25e3%2583%25a0%25e3%2582%25b9%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b9ns_prefixes%25e3%2581%25ab%25e3%2581%25a4%25e3%2581%2584%25e3%2581%25a6%25e3%2581%25ae%25e3%2583%25a1%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AEXML%E3%83%91%E3%83%BC%E3%82%B5%E3%81%A8%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%28ns_prefixes%29%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E3%83%A1%E3%83%A2" title="Evernote" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/evernote.png" width="16" height="16" alt="Evernote"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25aexml%25e3%2583%2591%25e3%2583%25bc%25e3%2582%25b5%25e3%2581%25a8%25e3%2583%258d%25e3%2583%25bc%25e3%2583%25a0%25e3%2582%25b9%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b9ns_prefixes%25e3%2581%25ab%25e3%2581%25a4%25e3%2581%2584%25e3%2581%25a6%25e3%2581%25ae%25e3%2583%25a1%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AEXML%E3%83%91%E3%83%BC%E3%82%B5%E3%81%A8%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%28ns_prefixes%29%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E3%83%A1%E3%83%A2" title="Twitter" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F02%2Fjavafreemarker%25e3%2581%25aexml%25e3%2583%2591%25e3%2583%25bc%25e3%2582%25b5%25e3%2581%25a8%25e3%2583%258d%25e3%2583%25bc%25e3%2583%25a0%25e3%2582%25b9%25e3%2583%259a%25e3%2583%25bc%25e3%2582%25b9ns_prefixes%25e3%2581%25ab%25e3%2581%25a4%25e3%2581%2584%25e3%2581%25a6%25e3%2581%25ae%25e3%2583%25a1%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%AEXML%E3%83%91%E3%83%BC%E3%82%B5%E3%81%A8%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%28ns_prefixes%29%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E3%83%A1%E3%83%A2"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://labs.zsrv.net/2010/02/javafreemarker%e3%81%aexml%e3%83%91%e3%83%bc%e3%82%b5%e3%81%a8%e3%83%8d%e3%83%bc%e3%83%a0%e3%82%b9%e3%83%9a%e3%83%bc%e3%82%b9ns_prefixes%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e3%81%ae%e3%83%a1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Java]FreemarkerでXML(NodeModel)のElementの一覧を表示してみる。</title>
		<link>http://labs.zsrv.net/2010/01/javafreemarker%e3%81%a7xmlnodemodel%e3%81%aeelement%e3%81%ae%e4%b8%80%e8%a6%a7%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/</link>
		<comments>http://labs.zsrv.net/2010/01/javafreemarker%e3%81%a7xmlnodemodel%e3%81%aeelement%e3%81%ae%e4%b8%80%e8%a6%a7%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 09:15:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Freemarker]]></category>
		<category><![CDATA[Struts2]]></category>

		<guid isPermaLink="false">http://labs.zsrv.net/?p=417</guid>
		<description><![CDATA[ということで、FreemarkerでXMLの内容を表示したいときに、どんなエレメントが紐づいているのか知りたかったので、 FreemarkerのFunctionを使って表示させｔみた。 &#60;#function pprint xmlroot depth&#62; &#60;#local ret&#62; &#60;#list xmlroot?children as c&#62; &#60;#list 0..depth as x&#62;&#160;&#160;&#60;/#list&#62; &#60;#if c?node_type = 'element'&#62; - ${c?node_type} &#60;#local d = depth + 1&#62; ${c?node_name} ${pprint(c, d)} &#60;/#if&#62;&#60;br /&#62; &#60;/#list&#62; &#60;/#local&#62; &#60;#return ret&#62; &#60;/#function&#62; 使い方はこんな感じ ${pprint(xmldoc, 0)}]]></description>
			<content:encoded><![CDATA[<p>ということで、FreemarkerでXMLの内容を表示したいときに、どんなエレメントが紐づいているのか知りたかったので、<br />
FreemarkerのFunctionを使って表示させｔみた。</p>
<pre class="brush:html">
&lt;#function pprint xmlroot depth&gt;
	&lt;#local ret&gt;
		&lt;#list xmlroot?children as c&gt;
			&lt;#list 0..depth as x&gt;&nbsp;&nbsp;&lt;/#list&gt;
			&lt;#if c?node_type = 'element'&gt;
				- ${c?node_type}
				&lt;#local d = depth + 1&gt;
				${c?node_name}
				${pprint(c, d)}
			&lt;/#if&gt;&lt;br /&gt;
		&lt;/#list&gt;
	&lt;/#local&gt;
	&lt;#return ret&gt;
&lt;/#function&gt;
</pre>
</p>
<p>使い方はこんな感じ</p>
<pre class="brush:html">
${pprint(xmldoc, 0)}
</pre></p>
<img src="http://labs.zsrv.net/?ak_action=api_record_view&id=417&type=feed" alt="" /><p><a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F01%2Fjavafreemarker%25e3%2581%25a7xmlnodemodel%25e3%2581%25aeelement%25e3%2581%25ae%25e4%25b8%2580%25e8%25a6%25a7%25e3%2582%2592%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2597%25e3%2581%25a6%25e3%2581%25bf%25e3%2582%258b%25e3%2580%2582%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%A7XML%28NodeModel%29%E3%81%AEElement%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82" title="Digg" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F01%2Fjavafreemarker%25e3%2581%25a7xmlnodemodel%25e3%2581%25aeelement%25e3%2581%25ae%25e4%25b8%2580%25e8%25a6%25a7%25e3%2582%2592%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2597%25e3%2581%25a6%25e3%2581%25bf%25e3%2582%258b%25e3%2580%2582%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%A7XML%28NodeModel%29%E3%81%AEElement%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F01%2Fjavafreemarker%25e3%2581%25a7xmlnodemodel%25e3%2581%25aeelement%25e3%2581%25ae%25e4%25b8%2580%25e8%25a6%25a7%25e3%2582%2592%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2597%25e3%2581%25a6%25e3%2581%25bf%25e3%2582%258b%25e3%2580%2582%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%A7XML%28NodeModel%29%E3%81%AEElement%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82" title="Google Reader" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F01%2Fjavafreemarker%25e3%2581%25a7xmlnodemodel%25e3%2581%25aeelement%25e3%2581%25ae%25e4%25b8%2580%25e8%25a6%25a7%25e3%2582%2592%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2597%25e3%2581%25a6%25e3%2581%25bf%25e3%2582%258b%25e3%2580%2582%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%A7XML%28NodeModel%29%E3%81%AEElement%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82" title="Facebook" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F01%2Fjavafreemarker%25e3%2581%25a7xmlnodemodel%25e3%2581%25aeelement%25e3%2581%25ae%25e4%25b8%2580%25e8%25a6%25a7%25e3%2582%2592%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2597%25e3%2581%25a6%25e3%2581%25bf%25e3%2582%258b%25e3%2580%2582%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%A7XML%28NodeModel%29%E3%81%AEElement%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82" title="Delicious" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F01%2Fjavafreemarker%25e3%2581%25a7xmlnodemodel%25e3%2581%25aeelement%25e3%2581%25ae%25e4%25b8%2580%25e8%25a6%25a7%25e3%2582%2592%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2597%25e3%2581%25a6%25e3%2581%25bf%25e3%2582%258b%25e3%2580%2582%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%A7XML%28NodeModel%29%E3%81%AEElement%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/evernote?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F01%2Fjavafreemarker%25e3%2581%25a7xmlnodemodel%25e3%2581%25aeelement%25e3%2581%25ae%25e4%25b8%2580%25e8%25a6%25a7%25e3%2582%2592%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2597%25e3%2581%25a6%25e3%2581%25bf%25e3%2582%258b%25e3%2580%2582%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%A7XML%28NodeModel%29%E3%81%AEElement%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82" title="Evernote" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/evernote.png" width="16" height="16" alt="Evernote"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F01%2Fjavafreemarker%25e3%2581%25a7xmlnodemodel%25e3%2581%25aeelement%25e3%2581%25ae%25e4%25b8%2580%25e8%25a6%25a7%25e3%2582%2592%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2597%25e3%2581%25a6%25e3%2581%25bf%25e3%2582%258b%25e3%2580%2582%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%A7XML%28NodeModel%29%E3%81%AEElement%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82" title="Twitter" rel="nofollow" target="_blank"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flabs.zsrv.net%2F2010%2F01%2Fjavafreemarker%25e3%2581%25a7xmlnodemodel%25e3%2581%25aeelement%25e3%2581%25ae%25e4%25b8%2580%25e8%25a6%25a7%25e3%2582%2592%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2597%25e3%2581%25a6%25e3%2581%25bf%25e3%2582%258b%25e3%2580%2582%2F&amp;linkname=%5BJava%5DFreemarker%E3%81%A7XML%28NodeModel%29%E3%81%AEElement%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82"><img src="http://labs.zsrv.net/wp-content/plugins/add-to-any/favicon.png" width="16" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://labs.zsrv.net/2010/01/javafreemarker%e3%81%a7xmlnodemodel%e3%81%aeelement%e3%81%ae%e4%b8%80%e8%a6%a7%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
