{"id":2132,"date":"2023-04-28T13:46:37","date_gmt":"2023-04-28T04:46:37","guid":{"rendered":"https:\/\/edu.ujhb.org\/?p=2132"},"modified":"2023-04-28T13:46:37","modified_gmt":"2023-04-28T04:46:37","slug":"freemaker%e5%85%a5%e9%96%80%ef%bc%88%e6%97%a5%e6%9c%ac%e8%aa%9e%e7%89%88%ef%bc%89","status":"publish","type":"post","link":"https:\/\/edu.ujhb.org\/?p=2132","title":{"rendered":"FreeMaker\u5165\u9580\uff08\u65e5\u672c\u8a9e\u7248\uff09"},"content":{"rendered":"\n<p>\u30f3\u30c6\u30f3\u30c4\u306b\u5408\u308f\u305b\u3066\u30a2\u30ec\u30f3\u30b8\u3057\u3066\u3082\u3089\u3048\u307e\u3059\u304b\u3002freemarker \u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u304b\u3089\u59cb\u3081\u307e\u3057\u3087\u3046\u3002\u307e\u305a\u3001\u8aac\u660e\u3059\u308b\u5185\u5bb9\u306e\u6982\u8981\u3092\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u3082\u3061\u308d\u3093\u3001\u3054\u8981\u671b\u306b\u5fdc\u3058\u3066\u3001FreeMarker \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u30d3\u30c7\u30aa \u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u6982\u8981\u3092\u30ea\u30b9\u30c8\u3057\u307e\u3057\u305f\u3002\u3053\u306e\u6982\u8981\u306b\u57fa\u3065\u3044\u3066\u3001\u5bfe\u5fdc\u3059\u308b\u30d3\u30c7\u30aa \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>FreeMarker \u306e\u7d39\u4ecb 1.1. FreeMarker \u3068\u306f?&nbsp;1.2. FreeMarker \u306e\u5229\u70b9\u3068\u9069\u7528\u30b7\u30ca\u30ea\u30aa<\/li>\n\n\n\n<li>FreeMarker \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u74b0\u5883\u8a2d\u5b9a 2.1. Java \u74b0\u5883\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb 2.2. FreeMarker \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb 2.3. FreeMarker \u958b\u767a\u74b0\u5883\u306e\u8a2d\u5b9a<\/li>\n\n\n\n<li>FreeMarker \u306e\u57fa\u672c\u69cb\u6587 3.1. \u30e9\u30d9\u30eb\u3068\u547d\u4ee4 3.2. \u5909\u6570\u3068\u5f0f 3.3. \u30b3\u30e1\u30f3\u30c8 3.4. \u6587\u5b57\u5217\u6f14\u7b97 3.5. \u6570\u5024\u6f14\u7b97 3.6. \u65e5\u4ed8\u3068\u6642\u523b\u306e\u6f14\u7b97<\/li>\n\n\n\n<li>FreeMarker\u306e\u30d7\u30ed\u30bb\u30b9\u5236\u5fa1 4.1.\u6761\u4ef6\u5224\u5b9a 4.2.\u30eb\u30fc\u30d7 4.3.\u30ea\u30b9\u30c8\u51e6\u7406 4.4.\u30de\u30c3\u30d4\u30f3\u30b0\u51e6\u7406<\/li>\n\n\n\n<li>FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570 5.1. \u30de\u30af\u30ed\u306e\u5b9a\u7fa9 5.2. \u30de\u30af\u30ed\u306e\u547c\u3073\u51fa\u3057 5.3. \u7d44\u307f\u8fbc\u307f\u95a2\u6570 5.4. \u30ab\u30b9\u30bf\u30e0\u95a2\u6570<\/li>\n\n\n\n<li>FreeMarker \u306e\u30c7\u30fc\u30bf\u30e2\u30c7\u30eb 6.1. \u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\u306e\u7d39\u4ecb 6.2. \u30c7\u30fc\u30bf\u578b 6.3. \u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9<\/li>\n\n\n\n<li>FreeMarker \u3068 Java \u306e\u7d71\u5408 7.1. Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3078\u306e\u30a2\u30af\u30bb\u30b9 7.2. Java \u30e1\u30bd\u30c3\u30c9\u306e\u547c\u3073\u51fa\u3057 7.3. JavaBeans \u306e\u7d71\u5408<\/li>\n\n\n\n<li>FreeMarker \u5b9f\u6226\u4e8b\u4f8b 8.1. \u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u751f\u6210 8.2. \u30e1\u30fc\u30eb\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u751f\u6210 8.3. PDF \u30ec\u30dd\u30fc\u30c8\u751f\u6210<\/li>\n\n\n\n<li>FreeMarker \u306e\u9ad8\u5ea6\u306a\u30c8\u30d4\u30c3\u30af9.1. \u30ab\u30b9\u30bf\u30e0 \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d69.2. \u8a2d\u5b9a\u3068\u30c1\u30e5\u30fc\u30cb\u30f3\u30b09.3. \u56fd\u969b\u5316\u30b5\u30dd\u30fc\u30c8<\/li>\n\n\n\n<li>FreeMarker \u30ea\u30bd\u30fc\u30b9\u3068\u3055\u3089\u306a\u308b\u5b66\u7fd210.1. \u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb10.2. \u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3068 Q&amp;A10.3. \u63a8\u5968\u3055\u308c\u308b\u672c\u3068\u30b3\u30fc\u30b9<\/li>\n<\/ol>\n\n\n\n<p>\u4e0a\u8a18\u306e\u6982\u8981\u306b\u5f93\u3063\u3066\u3001\u5bfe\u5fdc\u3059\u308b\u30d3\u30c7\u30aa \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3054\u4e0d\u660e\u306a\u70b9\u304c\u3054\u3056\u3044\u307e\u3057\u305f\u3089\u3001\u304a\u6c17\u8efd\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002\u3042\u306a\u305f\u306e\u30d3\u30c7\u30aa\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u9811\u5f35\u3063\u3066\u304f\u3060\u3055\u3044\uff01<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u3068\u306f\u4f55\u304b\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u4f1a\u8a71\u3067\u4f7f\u7528\u3055\u308c\u305f\u4ee5\u524d\u306e\u30e2\u30c7\u30eb\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002\u6700\u65b0\u306e\u30c7\u30d5\u30a9\u30eb\u30c8 \u30e2\u30c7\u30eb\u306b\u5207\u308a\u66ff\u3048\u307e\u3057\u305f<\/p>\n\n\n\n<p>FreeMarker \u306f\u3001\u30c6\u30ad\u30b9\u30c8\u51fa\u529b\u3092\u52d5\u7684\u306b\u751f\u6210\u3059\u308b\u305f\u3081\u306e Java \u30d9\u30fc\u30b9\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30a8\u30f3\u30b8\u30f3\u3067\u3059\u3002\u3053\u308c\u306f\u3001Apache \u30e9\u30a4\u30bb\u30f3\u30b9\u306b\u6e96\u62e0\u3059\u308b\u30aa\u30fc\u30d7\u30f3 \u30bd\u30fc\u30b9 \u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3067\u3042\u308a\u3001\u52b9\u7387\u7684\u3067\u67d4\u8edf\u6027\u304c\u3042\u308a\u3001\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u53ef\u80fd\u3067\u3001\u7fd2\u5f97\u3068\u4f7f\u7528\u304c\u7c21\u5358\u3067\u3059\u3002<\/p>\n\n\n\n<p>Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001FreeMarker \u306f\u901a\u5e38\u3001MVC (Model-View-Controller) \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306e\u30d3\u30e5\u30fc \u30ec\u30a4\u30e4\u30fc \u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3001\u3064\u307e\u308a\u30d3\u30e5\u30fc \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u305d\u306e\u4e3b\u306a\u6a5f\u80fd\u306f\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u53d7\u3051\u53d6\u308a\u3001\u30c7\u30fc\u30bf\u3092\u30d3\u30e5\u30fc \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3057\u3001\u6700\u7d42\u7684\u306b HTML\u3001XML\u3001JSON\u3001CSV \u304a\u3088\u3073\u305d\u306e\u4ed6\u306e\u51fa\u529b\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u3067\u3059\u3002<\/p>\n\n\n\n<p>FreeMarker \u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306f\u3001\u52d5\u7684\u306b\u751f\u6210\u3055\u308c\u305f\u30c7\u30fc\u30bf\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u308b\u30c6\u30ad\u30b9\u30c8\u3068\u30d7\u30ec\u30fc\u30b9\u30db\u30eb\u30c0\u30fc\u3092\u542b\u3080\u30c6\u30ad\u30b9\u30c8 \u30d5\u30a1\u30a4\u30eb\u306b\u57fa\u3065\u3044\u3066\u3044\u307e\u3059\u3002\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5185\u306e\u30d7\u30ec\u30fc\u30b9\u30db\u30eb\u30c0\u30fc\u306f\u3001\u5909\u6570\u3001\u5f0f\u3001\u30bf\u30b0\u306a\u3069\u306e\u5f62\u5f0f\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u3053\u308c\u3089\u306f\u3059\u3079\u3066 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u3088\u3063\u3066\u89e3\u6790\u304a\u3088\u3073\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>FreeMarker \u306e\u69cb\u6587\u306f Java \u306b\u4f3c\u3066\u3044\u307e\u3059\u304c\u3001\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u306f\u306a\u304f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u8a00\u8a9e\u3067\u3059\u3002\u6761\u4ef6\u5224\u65ad\u3001\u30eb\u30fc\u30d7\u3001\u5909\u6570\u5b9a\u7fa9\u3001\u30de\u30af\u30ed\u5b9a\u7fa9\u3001\u95a2\u6570\u547c\u3073\u51fa\u3057\u306a\u3069\u306e\u8c4a\u5bcc\u306a\u6587\u6cd5\u8981\u7d20\u3092\u63d0\u4f9b\u3057\u3001\u30c7\u30fc\u30bf\u3092\u7c21\u5358\u306b\u51e6\u7406\u3057\u3066\u8868\u793a\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306f\u975e\u5e38\u306b\u4fbf\u5229\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30a8\u30f3\u30b8\u30f3\u3067\u3042\u308a\u3001Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3001\u96fb\u5b50\u30e1\u30fc\u30eb\u3001\u30ec\u30dd\u30fc\u30c8\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306a\u3069\u306e\u52d5\u7684\u306a\u751f\u6210\u30b7\u30ca\u30ea\u30aa\u3067\u5e83\u304f\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u305d\u306e\u9ad8\u3044\u52b9\u7387\u6027\u3001\u67d4\u8edf\u6027\u3001\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u6027\u306b\u3088\u308a\u3001\u958b\u767a\u8005\u306f\u3055\u307e\u3056\u307e\u306a\u7a2e\u985e\u306e\u51fa\u529b\u3092\u3059\u3070\u3084\u304f\u7c21\u5358\u306b\u751f\u6210\u3067\u304d\u307e\u3059\u3002 .<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker \u306e\u5229\u70b9\u3068\u9069\u7528\u30b7\u30ca\u30ea\u30aa\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30a8\u30f3\u30b8\u30f3\u3068\u3057\u3066\u3001FreeMarker \u306b\u306f\u591a\u304f\u306e\u5229\u70b9\u3068\u9069\u7528\u53ef\u80fd\u306a\u30b7\u30ca\u30ea\u30aa\u304c\u3042\u308a\u307e\u3059. \u4ee5\u4e0b\u3067\u8a73\u3057\u304f\u8aac\u660e\u3057\u307e\u3057\u3087\u3046:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u52b9\u7387\u7684: FreeMarker \u306f Java \u8a00\u8a9e\u3067\u66f8\u304b\u308c\u3066\u304a\u308a\u3001\u9ad8\u5ea6\u306b\u6700\u9069\u5316\u3055\u308c\u305f\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u3059\u3070\u3084\u304f\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u67d4\u8edf\u6027: FreeMarker \u306f\u3001JavaBean\u3001Map\u3001List\u3001\u914d\u5217\u306a\u3069\u3001\u3055\u307e\u3056\u307e\u306a\u30c7\u30fc\u30bf\u5f62\u5f0f\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3001\u30ab\u30b9\u30bf\u30e0 \u30c7\u30fc\u30bf\u578b\u3068\u30e1\u30bd\u30c3\u30c9\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u53ef\u80fd: FreeMarker \u306f\u591a\u304f\u306e\u30ab\u30b9\u30bf\u30e0\u547d\u4ee4\u3068\u95a2\u6570\u3092\u63d0\u4f9b\u3057\u3001\u958b\u767a\u8005\u304c\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30a8\u30f3\u30b8\u30f3\u3092\u62e1\u5f35\u304a\u3088\u3073\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u7fd2\u5f97\u3068\u4f7f\u7528\u304c\u7c21\u5358: FreeMarker \u306e\u69cb\u6587\u306f Java \u306b\u4f3c\u3066\u304a\u308a\u3001\u7406\u89e3\u3068\u7fd2\u5f97\u304c\u5bb9\u6613\u3067\u3001\u8c4a\u5bcc\u306a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u4f8b\u3082\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30af\u30ed\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0: FreeMarker \u306f\u3001Windows\u3001Linux\u3001macOS \u306a\u3069\u3001Java \u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u4efb\u610f\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u4e0a\u8a18\u306e\u5229\u70b9\u306b\u57fa\u3065\u3044\u3066\u3001FreeMarker \u306f\u591a\u304f\u306e\u30b7\u30ca\u30ea\u30aa\u3067\u305d\u306e\u529b\u3092\u767a\u63ee\u3067\u304d\u307e\u3059. \u4ee5\u4e0b\u306f\u3001\u3044\u304f\u3064\u304b\u306e\u4e00\u822c\u7684\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b7\u30ca\u30ea\u30aa\u3067\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3: FreeMarker \u3092 MVC \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306e\u30d3\u30e5\u30fc \u30ec\u30a4\u30e4\u30fc \u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u3057\u3066\u4f7f\u7528\u3057\u3066\u3001HTML\u3001XML\u3001JSON \u306a\u3069\u306e\u51fa\u529b\u3092\u52d5\u7684\u306b\u751f\u6210\u3057\u3001Web \u30da\u30fc\u30b8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u96fb\u5b50\u30e1\u30fc\u30eb \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8: FreeMarker \u3092\u4f7f\u7528\u3057\u3066\u3001\u96fb\u5b50\u30e1\u30fc\u30eb \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3057\u3001\u96fb\u5b50\u30e1\u30fc\u30eb\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3068\u5f62\u5f0f\u3092\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u304b\u3089\u5206\u96e2\u3057\u3001\u96fb\u5b50\u30e1\u30fc\u30eb\u306e\u9ad8\u901f\u30d0\u30c3\u30c1\u9001\u4fe1\u306e\u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>PDF \u30ec\u30dd\u30fc\u30c8: FreeMarker \u3092 iText\u3001Apache POI \u306a\u3069\u306e\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u306e Java \u30e9\u30a4\u30d6\u30e9\u30ea\u3068\u5171\u306b\u4f7f\u7528\u3057\u3066\u3001\u30ec\u30dd\u30fc\u30c8\u3092 PDF \u5f62\u5f0f\u3067\u751f\u6210\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u751f\u6210: FreeMarker \u3092\u4f7f\u7528\u3057\u3066\u3001Word\u3001Excel\u3001HTML \u306a\u3069\u306e\u3055\u307e\u3056\u307e\u306a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u751f\u6210\u3057\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u81ea\u52d5\u751f\u6210\u306e\u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306f\u5f37\u529b\u3067\u67d4\u8edf\u3067\u4f7f\u3044\u3084\u3059\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30a8\u30f3\u30b8\u30f3\u3067\u3042\u308a\u3001\u3055\u307e\u3056\u307e\u306a\u30b7\u30ca\u30ea\u30aa\u3067\u306e\u30c7\u30fc\u30bf \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u52d5\u7684\u751f\u6210\u306b\u9069\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u74b0\u5883\u8a2d\u5b9a\u3092\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044 Java\u74b0\u5883\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059<\/p>\n\n\n\n<p>FreeMarker\u3092\u5229\u7528\u3059\u308b\u305f\u3081\u306b\u306f\u3001Java\u74b0\u5883\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u8a2d\u5b9a\u304c\u524d\u63d0\u3068\u306a\u308a\u307e\u3059\u306e\u3067\u3001\u4ee5\u4e0b\u306bJava\u74b0\u5883\u3068FreeMarker\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5\u3092\u305d\u308c\u305e\u308c\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Java \u74b0\u5883\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u524d\u306b\u3001\u307e\u305a Java \u74b0\u5883\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002Java \u74b0\u5883\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u624b\u9806\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<p>1.1. Java \u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/p>\n\n\n\n<p>\u307e\u305a\u3001\u516c\u5f0f Web \u30b5\u30a4\u30c8\u304b\u3089 Java \u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3001\u30aa\u30da\u30ec\u30fc\u30c6\u30a3\u30f3\u30b0 \u30b7\u30b9\u30c6\u30e0\u3068\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2 \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306b\u4e00\u81f4\u3059\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u9078\u629e\u3057\u307e\u3059\u3002\u901a\u5e38\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u306f .exe \u307e\u305f\u306f .dmg \u30d5\u30a1\u30a4\u30eb\u3067\u3001\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u3066\u958b\u304d\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u958b\u59cb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>1.2. Java \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/p>\n\n\n\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u3092\u8d77\u52d5\u3057\u305f\u3089\u3001\u30d7\u30ed\u30f3\u30d7\u30c8\u306b\u5f93\u3063\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002\u901a\u5e38\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3059\u308b\u3060\u3051\u3067\u3059\u3002\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u5b8c\u4e86\u3057\u305f\u3089\u3001\u30aa\u30da\u30ec\u30fc\u30c6\u30a3\u30f3\u30b0 \u30b7\u30b9\u30c6\u30e0\u304c Java \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u30d1\u30b9\u3092\u6b63\u3057\u304f\u8b58\u5225\u3067\u304d\u308b\u3088\u3046\u306b\u3001Java \u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>1.3. Java \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306e\u78ba\u8a8d<\/p>\n\n\n\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u5b8c\u4e86\u3057\u305f\u3089\u3001\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u3001Java \u304c\u6b63\u3057\u304f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>java -version\n<\/code><\/pre>\n\n\n\n<p>Java\u304c\u6b63\u3057\u304f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u3001Java\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7\u306a\u3069\u306e\u60c5\u5831\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002java \u30b3\u30de\u30f3\u30c9\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u3001\u307e\u305f\u306f\u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7\u304c\u6b63\u3057\u304f\u306a\u3044\u5834\u5408\u306f\u3001Java \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u5931\u6557\u3057\u305f\u3053\u3068\u3092\u610f\u5473\u3057\u307e\u3059\u3002\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u30d7\u30ed\u30bb\u30b9\u304c\u6b63\u3057\u3044\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>FreeMarker \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>Java \u74b0\u5883\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u3089\u3001FreeMarker \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u958b\u59cb\u3067\u304d\u307e\u3059\u3002FreeMarker \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u624b\u9806\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<p>2.1. FreeMarker \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/p>\n\n\n\n<p>\u307e\u305a\u3001\u516c\u5f0f Web \u30b5\u30a4\u30c8\u304b\u3089 FreeMarker \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3001\u304a\u4f7f\u3044\u306e\u30aa\u30da\u30ec\u30fc\u30c6\u30a3\u30f3\u30b0 \u30b7\u30b9\u30c6\u30e0\u306b\u4e00\u81f4\u3059\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u9078\u629e\u3057\u307e\u3059\u3002\u901a\u5e38\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u30d1\u30c3\u30b1\u30fc\u30b8\u306f .zip \u307e\u305f\u306f .tar.gz \u30d5\u30a1\u30a4\u30eb\u3067\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u4efb\u610f\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u89e3\u51cd\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>2.2. FreeMarker \u74b0\u5883\u306e\u8a2d\u5b9a<\/p>\n\n\n\n<p>\u89e3\u51cd\u5f8c\u3001FreeMarker \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u5165\u308a\u3001lib \u30d5\u30a9\u30eb\u30c0\u3092\u898b\u3064\u3051\u3066\u3001freemarker.jar \u30d5\u30a1\u30a4\u30eb\u3092 Java \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30af\u30e9\u30b9\u30d1\u30b9\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002\u3053\u306e\u624b\u9806\u306f\u3001\u30b3\u30de\u30f3\u30c9 \u30e9\u30a4\u30f3\u3067 javac \u3092\u4f7f\u7528\u3057\u3066\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u3068\u304d\u306b -classpath \u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u8ffd\u52a0\u3057\u305f\u308a\u3001Eclipse \u306a\u3069\u306e\u958b\u767a\u30c4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u69cb\u6210\u3057\u305f\u308a\u3059\u308b\u306a\u3069\u3001\u3055\u307e\u3056\u307e\u306a\u65b9\u6cd5\u3067\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>2.3. FreeMarker \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306e\u691c\u8a3c<\/p>\n\n\n\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u5b8c\u4e86\u3057\u305f\u3089\u3001\u7c21\u5358\u306a FreeMarker \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u6210\u3057\u3001\u305d\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092 Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u5b9f\u884c\u3057\u3066\u3001FreeMarker \u304c\u6b63\u3057\u304f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\u5177\u4f53\u7684\u306a\u5b9f\u88c5\u30d7\u30ed\u30bb\u30b9\u306b\u3064\u3044\u3066\u306f\u3001FreeMarker \u306e\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u3064\u307e\u308a\u3001Java \u74b0\u5883\u3068 FreeMarker \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u69cb\u6210\u3059\u308b\u3053\u3068\u304c FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306e\u524d\u63d0\u6761\u4ef6\u3067\u3042\u308a\u3001\u3053\u308c\u3089 2 \u3064\u306e\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u304c\u6b63\u3057\u304f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304a\u3088\u3073\u69cb\u6210\u3055\u308c\u3066\u521d\u3081\u3066\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u30b9\u30e0\u30fc\u30ba\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u74b0\u5883\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044 FreeMarker\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/p>\n\n\n\n<p>FreeMarker \u306f\u30aa\u30fc\u30d7\u30f3 \u30bd\u30fc\u30b9\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30a8\u30f3\u30b8\u30f3\u3067\u3059. FreeMarker \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u69cb\u6210\u306e\u30d7\u30ed\u30bb\u30b9\u306f\u6bd4\u8f03\u7684\u7c21\u5358\u3067\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u624b\u9806\u3092\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>FreeMarker \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/li>\n<\/ol>\n\n\n\n<p>\u307e\u305a\u3001\u516c\u5f0f Web \u30b5\u30a4\u30c8 http:\/\/freemarker.apache.org\/ \u304b\u3089 FreeMarker \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057<a href=\"http:\/\/freemarker.apache.org\/%E4%B8%8B%E8%BD%BDFreeMarker%E5%AE%89%E8%A3%85%E5%8C%85%EF%BC%8C%E9%80%89%E6%8B%A9%E4%B8%8E%E6%82%A8%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%9B%B8%E5%8C%B9%E9%85%8D%E7%9A%84%E7%89%88%E6%9C%AC%EF%BC%8C%E4%B8%8B%E8%BD%BD%E5%90%8E%E8%A7%A3%E5%8E%8B%E7%BC%A9%E5%88%B0%E4%BB%BB%E6%84%8F%E7%9B%AE%E5%BD%95%E4%B8%8B%E5%8D%B3%E5%8F%AF%E3%80%82%E5%AE%89%E8%A3%85%E5%8C%85%E9%80%9A%E5%B8%B8%E6%98%AF%E4%B8%80%E4%B8%AA.zip%E6%88%96.tar.gz%E6%96%87%E4%BB%B6%E3%80%82\">\u3001\u30aa\u30da\u30ec\u30fc\u30c6\u30a3\u30f3\u30b0 \u30b7\u30b9\u30c6\u30e0\u306b\u4e00\u81f4\u3059\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u9078\u629e\u3057\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u5f8c\u306b\u4efb\u610f\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u89e3\u51cd\u3057\u307e\u3059\u3002\u901a\u5e38\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u30d1\u30c3\u30b1\u30fc\u30b8\u306f .zip \u307e\u305f\u306f .tar.gz \u30d5\u30a1\u30a4\u30eb\u3067\u3059\u3002<\/a><\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>FreeMarker \u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>Java \u958b\u767a\u3067 FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001freemarker.jar \u30d5\u30a1\u30a4\u30eb\u3092 Java \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30af\u30e9\u30b9\u30d1\u30b9\u306b\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u624b\u9806\u306f\u3001\u30b3\u30de\u30f3\u30c9 \u30e9\u30a4\u30f3\u3067 javac \u3092\u4f7f\u7528\u3057\u3066\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u3068\u304d\u306b -classpath \u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u8ffd\u52a0\u3057\u305f\u308a\u3001Eclipse \u306a\u3069\u306e\u958b\u767a\u30c4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u69cb\u6210\u3057\u305f\u308a\u3059\u308b\u306a\u3069\u3001\u3055\u307e\u3056\u307e\u306a\u65b9\u6cd5\u3067\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304f<\/li>\n<\/ol>\n\n\n\n<p>\u4efb\u610f\u306e\u540d\u524d\u3067\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u304c\u3001\u901a\u5e38\u306f\u62e1\u5f35\u5b50 .ftl \u3092\u4ed8\u3051\u307e\u3059\u3002\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3067\u306f\u3001\u5909\u6570\u3001\u5f0f\u3001\u30bf\u30b0\u306a\u3069\u3001FreeMarker \u304c\u63d0\u4f9b\u3059\u308b\u3055\u307e\u3056\u307e\u306a\u69cb\u6587\u8981\u7d20\u3092\u4f7f\u7528\u3057\u3066\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u304c\u63d0\u4f9b\u3059\u308b API \u3092\u4ecb\u3057\u3066\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b Java \u30b3\u30fc\u30c9\u3092\u8a18\u8ff0\u3057\u307e\u3059\u3002\u5177\u4f53\u7684\u306a\u5b9f\u88c5\u30d7\u30ed\u30bb\u30b9\u306b\u3064\u3044\u3066\u306f\u3001FreeMarker \u306e\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u3068\u304d\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9\u3092\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3068\u3057\u3066 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3057\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3084\u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0\u306a\u3069\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0 \u30e1\u30bd\u30c3\u30c9\u306b\u6e21\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002FreeMarker \u30a8\u30f3\u30b8\u30f3\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u5f93\u3063\u3066\u51fa\u529b\u3092\u751f\u6210\u3057\u3001\u30c7\u30fc\u30bf\u30fb\u30e2\u30c7\u30eb\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u78ba\u8a8d\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u69cb\u6210\u304c\u5b8c\u4e86\u3057\u305f\u3089\u3001\u7c21\u5358\u306a FreeMarker \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u6210\u3057\u3001\u305d\u308c\u3092 Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u5b9f\u884c\u3057\u3066\u3001FreeMarker \u304c\u6b63\u3057\u304f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\u5177\u4f53\u7684\u306a\u5b9f\u88c5\u30d7\u30ed\u30bb\u30b9\u306b\u3064\u3044\u3066\u306f\u3001FreeMarker \u306e\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u975e\u5e38\u306b\u7c21\u5358\u3067\u3001\u516c\u5f0f Web \u30b5\u30a4\u30c8\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u89e3\u51cd\u3057\u3001freemarker.jar \u3092 Java \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u8ffd\u52a0\u3059\u308b\u3060\u3051\u3067\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u6210\u3057\u3066\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u69cb\u6587\u306e\u6b63\u78ba\u6027\u3068\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3092\u6255\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3089\u306f\u3059\u3079\u3066\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u958b\u767a\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\u305f\u3081\u306b\u3001FreeMarker\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u74b0\u5883\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u958b\u767a\u74b0\u5883\u306e\u69cb\u6210\u306f\u3001FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u30b9\u30c6\u30c3\u30d7\u3067\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u958b\u767a\u74b0\u5883\u3092\u69cb\u6210\u3059\u308b\u65b9\u6cd5\u3092\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>FreeMarker \u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>Java \u958b\u767a\u3067 FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001freemarker.jar \u30d5\u30a1\u30a4\u30eb\u3092 Java \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30af\u30e9\u30b9\u30d1\u30b9\u306b\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u624b\u9806\u306f\u3001\u30b3\u30de\u30f3\u30c9 \u30e9\u30a4\u30f3\u3067 javac \u3092\u4f7f\u7528\u3057\u3066\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u3068\u304d\u306b -classpath \u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u8ffd\u52a0\u3057\u305f\u308a\u3001Eclipse \u306a\u3069\u306e\u958b\u767a\u30c4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u69cb\u6210\u3057\u305f\u308a\u3059\u308b\u306a\u3069\u3001\u3055\u307e\u3056\u307e\u306a\u65b9\u6cd5\u3067\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>Maven \u3092\u4f7f\u7528\u3057\u3066\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30d3\u30eb\u30c9\u3059\u308b\u5834\u5408\u306f\u3001pom.xml \u30d5\u30a1\u30a4\u30eb\u306b\u6b21\u306e\u4f9d\u5b58\u95a2\u4fc2\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xml\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;dependency&gt;\n    &lt;groupId&gt;org.freemarker&lt;\/groupId&gt;\n    &lt;artifactId&gt;freemarker&lt;\/artifactId&gt;\n    &lt;version&gt;2.3.30&lt;\/version&gt;\n&lt;\/dependency&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u308a\u3001FreeMarker \u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u81ea\u52d5\u7684\u306b\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u304a\u3088\u3073\u30a4\u30f3\u30dd\u30fc\u30c8\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u914d\u7f6eFreeMarker\u5c5e\u6027<\/li>\n<\/ol>\n\n\n\n<p>Java \u30b3\u30fc\u30c9\u3067 FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001FreeMarker \u30a8\u30f3\u30b8\u30f3\u304c\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u6b63\u3057\u304f\u89e3\u6790\u304a\u3088\u3073\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3067\u304d\u308b\u3088\u3046\u306b\u3001\u3044\u304f\u3064\u304b\u306e\u69cb\u6210\u304c\u5fc5\u8981\u3067\u3059\u3002\u6b21\u306e\u30b3\u30fc\u30c9\u3067\u69cb\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_30);\ncfg.setDirectoryForTemplateLoading(new File(\"templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001Configuration \u30af\u30e9\u30b9\u306f FreeMarker \u306e\u30b3\u30a2 \u30af\u30e9\u30b9\u3067\u3042\u308a\u3001FreeMarker \u30a8\u30f3\u30b8\u30f3\u306e\u3055\u307e\u3056\u307e\u306a\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u69cb\u6210\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u4f8b\u3067\u306f\u3001FreeMarker \u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea \u30d1\u30b9\u3001\u304a\u3088\u3073\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30a8\u30f3\u30b3\u30fc\u30c9\u65b9\u6cd5\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u4f5c\u6210\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001\u30c7\u30fc\u30bf\u3092 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3057\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3068\u3057\u3066\u30ab\u30d7\u30bb\u30eb\u5316\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306f\u3001\u6b21\u306e\u30b3\u30fc\u30c9\u3067\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Map&lt;String, Object&gt; data = new HashMap&lt;String, Object&gt;();\ndata.put(\"name\", \"FreeMarker\");\ndata.put(\"version\", \"2.3.30\");\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001Java \u306e Map \u30c7\u30fc\u30bf\u69cb\u9020\u3092\u4f7f\u7528\u3057\u3066\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3057\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30ad\u30fc\u3068\u5024\u306e\u30da\u30a2\u3092\u3055\u3089\u306b\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8<\/li>\n<\/ol>\n\n\n\n<p>\u69cb\u6210\u3068\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u4f5c\u6210\u3057\u305f\u3089\u3001FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u4f7f\u7528\u3057\u3066\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3067\u304d\u307e\u3059\u3002\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306f\u3001\u6b21\u306e\u30b3\u30fc\u30c9\u3067\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Template template = cfg.getTemplate(\"hello.ftl\");\nWriter out = new OutputStreamWriter(System.out);\ntemplate.process(data, out);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001Template \u30af\u30e9\u30b9\u3092\u4f7f\u7528\u3057\u3066\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u307f\u3001\u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u4f5c\u6210\u3057\u3066\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u7d50\u679c\u3092\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u51fa\u529b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u958b\u767a\u74b0\u5883\u306e\u691c\u8a3c<\/li>\n<\/ol>\n\n\n\n<p>\u958b\u767a\u74b0\u5883\u3092\u69cb\u6210\u3057\u305f\u3089\u3001\u7c21\u5358\u306a FreeMarker \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u6210\u3057\u3001\u305d\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092 Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u5b9f\u884c\u3057\u3066\u3001FreeMarker \u304c\u6b63\u3057\u304f\u69cb\u6210\u3055\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\u5177\u4f53\u7684\u306a\u5b9f\u88c5\u30d7\u30ed\u30bb\u30b9\u306b\u3064\u3044\u3066\u306f\u3001FreeMarker \u306e\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u958b\u767a\u74b0\u5883\u3092\u69cb\u6210\u3059\u308b\u306b\u306f\u3001FreeMarker \u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u8a2d\u5b9a\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306e\u4f5c\u6210\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306a\u3069\u306e\u624b\u9806\u304c\u5fc5\u8981\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u624b\u9806\u306f\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3057\u3066\u5b8c\u4e86\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u958b\u767a\u74b0\u5883\u304c\u6b63\u3057\u304f\u69cb\u6210\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306b\u306e\u307f\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u30b9\u30e0\u30fc\u30ba\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u30bf\u30b0\u3068\u547d\u4ee4\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u30bf\u30b0\u3068\u547d\u4ee4\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u30bf\u30b0\u3068\u547d\u4ee4\u3092\u8a73\u7d30\u306b\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5909\u6570<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f ${} \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u5909\u6570\u3092\u8868\u3057\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u4f7f\u7528\u3057\u3066\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306b\u5024\u3092\u51fa\u529b\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>Hello, ${user.name}!\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001${} \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306e user.name \u306e\u5024\u3092\u51fa\u529b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u8868\u73fe<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001\u30c7\u30fc\u30bf\u306e\u51e6\u7406\u3068\u8868\u793a\u306b\u4f7f\u7528\u3067\u304d\u308b\u7b97\u8853\u5f0f\u3001\u8ad6\u7406\u5f0f\u3001\u6bd4\u8f03\u5f0f\u306a\u3069\u3001\u3055\u307e\u3056\u307e\u306a\u5f0f\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u4e00\u822c\u7684\u306a\u8868\u73fe\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>2.1. \u7b97\u8853\u5f0f<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${a + b}  \/\/ \u52a0\u6cd5\n${a - b}  \/\/ \u51cf\u6cd5\n${a * b}  \/\/ \u4e58\u6cd5\n${a \/ b}  \/\/ \u9664\u6cd5\n${a % b}  \/\/ \u53d6\u6a21\n<\/code><\/pre>\n\n\n\n<p>2.2. \u8ad6\u7406\u5f0f<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${a and b}  \/\/ \u4e0e\n${a or b}  \/\/ \u6216\n${not a}  \/\/ \u975e\n<\/code><\/pre>\n\n\n\n<p>2.3. \u5f0f\u306e\u6bd4\u8f03<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${a == b}  \/\/ \u76f8\u7b49\n${a != b}  \/\/ \u4e0d\u7b49\n${a &lt; b}  \/\/ \u5c0f\u4e8e\n${a &lt;= b}  \/\/ \u5c0f\u4e8e\u7b49\u4e8e\n${a &gt; b}  \/\/ \u5927\u4e8e\n${a &gt;= b}  \/\/ \u5927\u4e8e\u7b49\u4e8e\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u6307\u4ee4<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u8868\u793a\u3092\u5236\u5fa1\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u308b\u3055\u307e\u3056\u307e\u306a\u547d\u4ee4\u3082\u63d0\u4f9b\u3057\u307e\u3059\u3002\u4e00\u822c\u7684\u306a\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>3.1. if\u547d\u4ee4<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduino\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#if condition&gt;\n    \/\/ \u5982\u679c\u6761\u4ef6\u6210\u7acb\uff0c\u6267\u884c\u8fd9\u91cc\u7684\u4ee3\u7801\n&lt;#else&gt;\n    \/\/ \u5982\u679c\u6761\u4ef6\u4e0d\u6210\u7acb\uff0c\u6267\u884c\u8fd9\u91cc\u7684\u4ee3\u7801\n&lt;\/#if&gt;\n<\/code><\/pre>\n\n\n\n<p>3.2. \u30ea\u30b9\u30c8\u30b3\u30de\u30f3\u30c9<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduino\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#list items as item&gt;\n    \/\/ \u904d\u5386items\u5217\u8868\uff0c\u6bcf\u6b21\u5faa\u73af\u5c06\u5f53\u524d\u5143\u7d20\u8d4b\u503c\u7ed9item\n&lt;\/#list&gt;\n<\/code><\/pre>\n\n\n\n<p>3.3. assign\u6307\u4ee4<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduino\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#assign name = value&gt;\n<\/code><\/pre>\n\n\n\n<p>3.4. include\u6307\u4ee4<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduino\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#include \"filename.ftl\"&gt;\n<\/code><\/pre>\n\n\n\n<p>3.5. function\u6307\u4ee4<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduino\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#function name (arg1, arg2, ...)&gt;\n    \/\/ \u51fd\u6570\u4f53\n&lt;\/#function&gt;\n<\/code><\/pre>\n\n\n\n<p>\u547d\u4ee4\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u305f\u3081\u3001\u6587\u6cd5\u306e\u6b63\u78ba\u6027\u3068\u4f7f\u7528\u65b9\u6cd5\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3092\u6255\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u30bf\u30b0\u3068\u547d\u4ee4\u306f\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u3092\u7fd2\u5f97\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u3088\u308a\u9069\u5207\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u5909\u6570\u3068\u5f0f\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u5909\u6570\u3068\u5f0f\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u5909\u6570\u3068\u5f0f\u3092\u8a73\u7d30\u306b\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5909\u6570<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f ${} \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u5909\u6570\u3092\u8868\u3057\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u4f7f\u7528\u3057\u3066\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306b\u5024\u3092\u51fa\u529b\u3067\u304d\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>${variable}\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001\u5909\u6570\u306f\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u5185\u306e\u5909\u6570\u540d\u3067\u3042\u308a\u3001\u5358\u7d14\u306a\u5909\u6570\u540d\u307e\u305f\u306f\u8907\u5408\u5909\u6570\u540d\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduino\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${name}  \/\/ \u8f93\u51fa\u7b80\u5355\u53d8\u91cfname\u7684\u503c\n${user.name}  \/\/ \u8f93\u51fa\u590d\u5408\u53d8\u91cfuser.name\u7684\u503c\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u8868\u73fe<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001\u30c7\u30fc\u30bf\u306e\u51e6\u7406\u3068\u8868\u793a\u306b\u4f7f\u7528\u3067\u304d\u308b\u3055\u307e\u3056\u307e\u306a\u5f0f\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u4e00\u822c\u7684\u306a\u8868\u73fe\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>2.1. \u7b97\u8853\u5f0f<\/p>\n\n\n\n<p>FreeMarker \u306f\u3001\u52a0\u7b97\u3001\u6e1b\u7b97\u3001\u4e57\u7b97\u3001\u9664\u7b97\u3001\u30e2\u30b8\u30e5\u30e9\u30b9\u306a\u3069\u306e\u4e00\u822c\u7684\u306a\u7b97\u8853\u6f14\u7b97\u5b50\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${a + b}  \/\/ \u52a0\u6cd5\n${a - b}  \/\/ \u51cf\u6cd5\n${a * b}  \/\/ \u4e58\u6cd5\n${a \/ b}  \/\/ \u9664\u6cd5\n${a % b}  \/\/ \u53d6\u6a21\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001a \u3068 b \u306f\u5909\u6570\u540d\u3067\u3001\u5358\u7d14\u306a\u5909\u6570\u540d\u307e\u305f\u306f\u8907\u5408\u5909\u6570\u540d\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>2.2. \u8ad6\u7406\u5f0f<\/p>\n\n\n\n<p>FreeMarker \u306f\u3001AND\u3001OR\u3001NOT \u306a\u3069\u306e\u8ad6\u7406\u6f14\u7b97\u5b50\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${a and b}  \/\/ \u4e0e\n${a or b}  \/\/ \u6216\n${not a}  \/\/ \u975e\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001a \u3068 b \u306f\u5909\u6570\u540d\u3067\u3001\u5358\u7d14\u306a\u5909\u6570\u540d\u307e\u305f\u306f\u8907\u5408\u5909\u6570\u540d\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>2.3. \u5f0f\u306e\u6bd4\u8f03<\/p>\n\n\n\n<p>FreeMarker \u306f\u3001\u7b49\u3057\u3044\u3001\u7b49\u3057\u304f\u306a\u3044\u3001\u3088\u308a\u5c0f\u3055\u3044\u3001\u4ee5\u4e0b\u3001\u3088\u308a\u5927\u304d\u3044\u3001\u3088\u308a\u5927\u304d\u3044\u3001\u307e\u305f\u306f\u7b49\u3057\u3044\u306a\u3069\u306e\u6bd4\u8f03\u6f14\u7b97\u5b50\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${a == b}  \/\/ \u76f8\u7b49\n${a != b}  \/\/ \u4e0d\u7b49\n${a &lt; b}  \/\/ \u5c0f\u4e8e\n${a &lt;= b}  \/\/ \u5c0f\u4e8e\u7b49\u4e8e\n${a &gt; b}  \/\/ \u5927\u4e8e\n${a &gt;= b}  \/\/ \u5927\u4e8e\u7b49\u4e8e\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001a \u3068 b \u306f\u5909\u6570\u540d\u3067\u3001\u5358\u7d14\u306a\u5909\u6570\u540d\u307e\u305f\u306f\u8907\u5408\u5909\u6570\u540d\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u5909\u6570\u3068\u5f0f\u306f\u3001FreeMarker \u3092\u4f7f\u7528\u3057\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u3092\u7fd2\u5f97\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u304c\u3088\u308a\u9069\u5207\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u5909\u6570\u3068\u5f0f\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u5909\u6570\u540d\u306e\u6b63\u78ba\u6027\u3068\u5f0f\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u57fa\u672c\u69cb\u6587\u30b3\u30e1\u30f3\u30c8\u306f\u3001FreeMarker \u3092\u4f7f\u7528\u3057\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u958b\u767a\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3059. \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30b3\u30fc\u30c9\u306b\u30b3\u30e1\u30f3\u30c8\u3092\u4ed8\u3051\u305f\u308a\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059. \u4ee5\u4e0b\u306b\u3001FreeMarker \u306e\u57fa\u672c\u69cb\u6587\u30b3\u30e1\u30f3\u30c8\u3092\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e9\u30a4\u30f3\u30b3\u30e1\u30f3\u30c8<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001# \u8a18\u53f7\u3067\u59cb\u307e\u308a\u3001\u884c\u672b\u3067\u7d42\u308f\u308b\u884c\u30b3\u30e1\u30f3\u30c8\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u884c\u30b3\u30e1\u30f3\u30c8\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u30b3\u30e1\u30f3\u30c8\u3084\u30c7\u30d0\u30c3\u30b0\u60c5\u5831\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u3088\u304f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;#-- \u8fd9\u662f\u4e00\u4e2a\u884c\u6ce8\u91ca --&gt;\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30d6\u30ed\u30c3\u30af\u30b3\u30e1\u30f3\u30c8<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001&lt;#\u2013 \u3068 \u2013&gt; \u3067\u56f2\u307e\u308c\u305f\u30d6\u30ed\u30c3\u30af \u30b3\u30e1\u30f3\u30c8\u3082\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u30d6\u30ed\u30c3\u30af \u30b3\u30e1\u30f3\u30c8\u306f\u8907\u6570\u306e\u884c\u306b\u307e\u305f\u304c\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u30cd\u30b9\u30c8\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u30d6\u30ed\u30c3\u30af \u30b3\u30e1\u30f3\u30c8\u306f\u901a\u5e38\u3001\u30b3\u30fc\u30c9\u306e\u5927\u304d\u306a\u30d6\u30ed\u30c3\u30af\u306b\u30b3\u30e1\u30f3\u30c8\u3092\u4ed8\u3051\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lua\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#--\n\u8fd9\u662f\u4e00\u4e2a\n\u591a\u884c\u6ce8\u91ca\n--&gt;\n<\/code><\/pre>\n\n\n\n<p>\u6ce8\u91c8\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b3\u30e1\u30f3\u30c8\u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3067\u306e\u307f\u4f7f\u7528\u3055\u308c\u3001\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u7d50\u679c\u306b\u306f\u5f71\u97ff\u3057\u307e\u305b\u3093\u3002<\/li>\n\n\n\n<li>\u30b3\u30e1\u30f3\u30c8\u3092\u30e9\u30d9\u30eb\u3001\u5f0f\u3001\u304a\u3088\u3073\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3067\u4f7f\u7528\u3057\u3066\u3001\u30b3\u30fc\u30c9\u306e\u8aad\u307f\u3084\u3059\u3055\u3068\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u306e\u5bb9\u6613\u3055\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u6ce8\u91c8\u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u3079\u304d\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u307e\u305f\u3001\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u3068\u304d\u306f\u3001\u3042\u307e\u308a\u591a\u304f\u306e\u6ce8\u91c8\u3092\u4f7f\u7528\u3057\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u30b3\u30e1\u30f3\u30c8\u306f\u3001FreeMarker \u3092\u4f7f\u7528\u3057\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u958b\u767a\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30b3\u30fc\u30c9\u306b\u30b3\u30e1\u30f3\u30c8\u3092\u4ed8\u3051\u3066\u30b3\u30fc\u30c9\u306e\u8aad\u307f\u3084\u3059\u3055\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\u6ce8\u91c8\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001\u30b3\u30fc\u30c9\u306e\u4fdd\u5b88\u6027\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u306b\u3001\u6ce8\u91c8\u306e\u6587\u6cd5\u5f62\u5f0f\u3068\u4f7f\u7528\u30b7\u30ca\u30ea\u30aa\u306b\u6ce8\u610f\u3092\u6255\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u6587\u5b57\u5217\u64cd\u4f5c\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u6587\u5b57\u5217\u64cd\u4f5c\u306f\u3001\u6587\u5b57\u5217\u306e\u51e6\u7406\u3068\u8868\u793a\u306b\u4f7f\u7528\u3067\u304d\u308b FreeMarker \u3092\u4f7f\u7528\u3057\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u6587\u5b57\u5217\u64cd\u4f5c\u3092\u8a73\u7d30\u306b\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6587\u5b57\u5217\u9023\u7d50<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f + \u8a18\u53f7\u3092\u4f7f\u7528\u3057\u3066\u6587\u5b57\u5217\u306e\u9023\u7d50\u3092\u793a\u3057\u3001\u8907\u6570\u306e\u6587\u5b57\u5217\u3092\u7d50\u5408\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ruby\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${\"Hello,\" + \" \" + \"world!\"}\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u6587\u5b57\u5217\u306e\u9577\u3055<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f ?size \u3092\u4f7f\u7528\u3057\u3066\u6587\u5b57\u5217\u306e\u9577\u3055\u3092\u8868\u3057\u3001\u6587\u5b57\u5217\u5185\u306e\u6587\u5b57\u6570\u3092\u8a08\u7b97\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ruby\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${\"hello world\"?size}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u300chello world\u300d\u6587\u5b57\u5217\u306e\u9577\u3055\u304c\u8a08\u7b97\u3055\u308c\u3001\u7d50\u679c\u306f 11 \u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u6587\u5b57\u5217\u508d\u53d7<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f ?substring \u3092\u4f7f\u7528\u3057\u3066\u6587\u5b57\u5217\u508d\u53d7\u3092\u8868\u3057\u3001\u6307\u5b9a\u3055\u308c\u305f\u7bc4\u56f2\u5185\u306e\u90e8\u5206\u6587\u5b57\u5217\u3092\u508d\u53d7\u3067\u304d\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">scss\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>${string?substring(beginIndex, endIndex)}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u3046\u3061\u3001string \u306f\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30c8\u3059\u308b\u6587\u5b57\u5217\u3001beginIndex \u306f\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30c8\u306e\u958b\u59cb\u4f4d\u7f6e\u3001endIndex \u306f\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30c8\u306e\u7d42\u4e86\u4f4d\u7f6e\u3067\u3059 (\u3053\u306e\u4f4d\u7f6e\u306e\u6587\u5b57\u306f\u542b\u307e\u308c\u307e\u305b\u3093)\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ruby\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${\"hello world\"?substring(0, 5)}  \/\/ \u8f93\u51fa\"hello\"\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u5f26\u4ea4\u63db<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f ?replace \u3092\u4f7f\u7528\u3057\u3066\u6587\u5b57\u5217\u306e\u7f6e\u63db\u3092\u8868\u3057\u3001\u6587\u5b57\u5217\u5185\u306e\u90e8\u5206\u6587\u5b57\u5217\u3092\u5225\u306e\u90e8\u5206\u6587\u5b57\u5217\u306b\u7f6e\u304d\u63db\u3048\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">scss\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>${string?replace(substring, replacement)}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u3046\u3061\u3001string \u306f\u7f6e\u63db\u5bfe\u8c61\u306e\u6587\u5b57\u5217\u3001substring \u306f\u7f6e\u63db\u5bfe\u8c61\u306e\u90e8\u5206\u6587\u5b57\u5217\u3001replacement \u306f\u7f6e\u63db\u5f8c\u306e\u90e8\u5206\u6587\u5b57\u5217\u3067\u3059\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ruby\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${\"hello world\"?replace(\"world\", \"FreeMarker\")}  \/\/ \u8f93\u51fa\"hello FreeMarker\"\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u6587\u5b57\u5217\u306e\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u306e\u5909\u63db<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f ?lower_case \u3068 ?upper_case \u3092\u4f7f\u7528\u3057\u3066\u6587\u5b57\u5217\u306e\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u306e\u5909\u63db\u3092\u8868\u3057\u3001\u6587\u5b57\u5217\u3092\u5c0f\u6587\u5b57\u307e\u305f\u306f\u5927\u6587\u5b57\u306b\u5909\u63db\u3067\u304d\u307e\u3059\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">shell\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>${\"Hello, World!\"?lower_case}  \/\/ \u8f93\u51fa\"hello, world!\"\n${\"Hello, World!\"?upper_case}  \/\/ \u8f93\u51fa\"HELLO, WORLD!\"\n<\/code><\/pre>\n\n\n\n<p>\u6587\u5b57\u5217\u64cd\u4f5c\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6587\u5b57\u5217\u64cd\u4f5c\u306f\u3001\u6587\u5b57\u5217\u578b\u306e\u5909\u6570\u3067\u306e\u307f\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u6587\u5b57\u5217\u64cd\u4f5c\u306f\u3001HTML \u30da\u30fc\u30b8\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u3068\u304d\u306e\u30c6\u30ad\u30b9\u30c8\u306e\u64cd\u4f5c\u3084\u3001\u30c7\u30fc\u30bf\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u6642\u306e\u30c7\u30fc\u30bf\u306e\u66f8\u5f0f\u8a2d\u5b9a\u306a\u3069\u3001\u30c7\u30fc\u30bf\u306e\u8868\u793a\u3068\u64cd\u4f5c\u306b\u3088\u304f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u6587\u5b57\u5217\u64cd\u4f5c\u306f\u3001\u3088\u308a\u8907\u96d1\u306a\u6587\u5b57\u5217\u64cd\u4f5c\u306e\u305f\u3081\u306b\u30cd\u30b9\u30c8\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u6587\u5b57\u5217\u64cd\u4f5c\u306f\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u304c\u3088\u308a\u9069\u5207\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u6587\u5b57\u5217\u6f14\u7b97\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3057\u3066\u3001\u69cb\u6587\u306e\u6b63\u78ba\u6027\u3068\u4f7f\u7528\u65b9\u6cd5\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u7684\u306a\u6570\u306e\u64cd\u4f5c\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u30c7\u30b8\u30bf\u30eb\u64cd\u4f5c\u306f\u3001FreeMarker \u3092\u4f7f\u7528\u3057\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u6570\u5024\u306e\u51e6\u7406\u3068\u8868\u793a\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u30c7\u30b8\u30bf\u30eb\u64cd\u4f5c\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6570\u5024\u306e\u66f8\u5f0f\u8a2d\u5b9a<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f ?string \u3092\u4f7f\u7528\u3057\u3066\u6570\u5024\u306e\u66f8\u5f0f\u3092\u8868\u3057\u3001\u6570\u5024\u3092\u6307\u5b9a\u3055\u308c\u305f\u5f62\u5f0f\u306e\u6587\u5b57\u5217\u306b\u5909\u63db\u3067\u304d\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lua\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${number?string(format)}\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001number \u306f\u66f8\u5f0f\u8a2d\u5b9a\u3055\u308c\u308b\u6570\u5024\u3001format \u306f\u66f8\u5f0f\u6587\u5b57\u5217\u3001\u304a\u3088\u3073\u3044\u304f\u3064\u304b\u306e\u30d7\u30ec\u30fc\u30b9\u30db\u30eb\u30c0\u30fc\u3092\u4f7f\u7528\u3057\u3066\u6570\u5024\u306e\u3055\u307e\u3056\u307e\u306a\u90e8\u5206\u3092\u8868\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">c\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${1234567.89?string(\"#,##0.00\")}  \/\/ \u8f93\u51fa\"1,234,567.89\"\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u66f8\u5f0f\u6587\u5b57\u5217 &#8220;#,##0.00&#8221; \u3092\u4f7f\u7528\u3057\u3066\u6570\u5024\u3092 3 \u6841\u533a\u5207\u308a\u306e\u5f62\u5f0f\u306b\u5909\u63db\u3057\u3001\u5c0f\u6570\u70b9\u4ee5\u4e0b 2 \u6841\u3092\u4fdd\u6301\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u6570\u5b57\u306f\u56db\u6368\u4e94\u5165<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f ?round \u3092\u4f7f\u7528\u3057\u3066\u6570\u5024\u306e\u4e38\u3081\u3092\u793a\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u6307\u5b9a\u3055\u308c\u305f\u6841\u6570\u306b\u5f93\u3063\u3066\u6570\u5024\u3092\u4e38\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">scss\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>${1234567.8956?round(2)}  \/\/ \u8f93\u51fa1234567.90\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u6570\u5024\u306f\u5c0f\u6570\u70b9\u4ee5\u4e0b 2 \u6841\u306b\u7dad\u6301\u3055\u308c\u3001\u4e38\u3081\u898f\u5247\u306b\u5f93\u3063\u3066\u4e38\u3081\u3089\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30c7\u30b8\u30bf\u30eb\u6bd4\u8f03<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u6bd4\u8f03\u6f14\u7b97\u5b50\u3092\u4f7f\u7528\u3057\u3066\u3001\u7b49\u3057\u3044\u3001\u7b49\u3057\u304f\u306a\u3044\u3001\u3088\u308a\u5c0f\u3055\u3044\u3001\u4ee5\u4e0b\u3001\u3088\u308a\u5927\u304d\u3044\u3001\u3088\u308a\u5927\u304d\u3044\u3001\u307e\u305f\u306f\u7b49\u3057\u3044\u306a\u3069\u306e\u6570\u5024\u306e\u6bd4\u8f03\u3092\u8868\u3057\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6587\u5b57\u5217\u64cd\u4f5c\u306b\u4f3c\u3066\u3044\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${a &lt; b}  \/\/ \u5c0f\u4e8e\n${a == b}  \/\/ \u76f8\u7b49\n${a &gt; b}  \/\/ \u5927\u4e8e\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u3046\u3061\u3001a \u3068 b \u306f\u6570\u5024\u578b\u306e\u5909\u6570\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u30c7\u30b8\u30bf\u30eb\u6f14\u7b97\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6570\u5024\u6f14\u7b97\u306f\u3001\u6570\u5024\u578b\u306e\u5909\u6570\u306b\u5bfe\u3057\u3066\u306e\u307f\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u6570\u5024\u6f14\u7b97\u306f\u3001\u30c1\u30e3\u30fc\u30c8\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u969b\u306e\u30c7\u30fc\u30bf\u306e\u66f8\u5f0f\u8a2d\u5b9a\u3084\u3001\u8a08\u7b97\u6642\u306e\u30c7\u30fc\u30bf\u306e\u4e38\u3081\u306a\u3069\u3001\u30c7\u30fc\u30bf\u3092\u8868\u73fe\u304a\u3088\u3073\u64cd\u4f5c\u3059\u308b\u305f\u3081\u306b\u3088\u304f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u6570\u5024\u6f14\u7b97\u306f\u3001\u3088\u308a\u8907\u96d1\u306a\u6570\u5024\u64cd\u4f5c\u306e\u305f\u3081\u306b\u30cd\u30b9\u30c8\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u3068\u30c7\u30b8\u30bf\u30eb\u64cd\u4f5c\u306f\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3059\u308b\u305f\u3081\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u304c\u3088\u308a\u9069\u5207\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u6570\u5024\u6f14\u7b97\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u69cb\u6587\u306e\u6b63\u78ba\u6027\u3068\u4f7f\u7528\u65b9\u6cd5\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u65e5\u4ed8\u3068\u6642\u523b\u306e\u64cd\u4f5c\u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u4e0a\u306e\u65e5\u4ed8\u3068\u6642\u523b\u306e\u64cd\u4f5c\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u65e5\u4ed8\u3068\u6642\u523b\u306e\u51e6\u7406\u3068\u8868\u793a\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u4e0a\u306e\u65e5\u4ed8\u3068\u6642\u523b\u306e\u64cd\u4f5c\u3092\u8a73\u7d30\u306b\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u65e5\u4ed8\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f ?string \u3092\u4f7f\u7528\u3057\u3066\u65e5\u4ed8\u5f62\u5f0f\u3092\u8868\u3057\u3001\u65e5\u4ed8\u3092\u6307\u5b9a\u3055\u308c\u305f\u5f62\u5f0f\u306e\u6587\u5b57\u5217\u306b\u5909\u63db\u3067\u304d\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lua\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${date?string(format)}\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001date \u306f\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3055\u308c\u308b\u65e5\u4ed8\u3001format \u306f\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u6587\u5b57\u5217\u3001\u304a\u3088\u3073\u4e00\u90e8\u306e\u30d7\u30ec\u30fc\u30b9\u30db\u30eb\u30c0\u30fc\u306f\u65e5\u4ed8\u306e\u3055\u307e\u3056\u307e\u306a\u90e8\u5206\u3092\u8868\u3059\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lua\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${date?string(\"yyyy-MM-dd HH:mm:ss\")}  \/\/ \u8f93\u51fa\"2023-04-27 14:30:00\"\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u300cyyyy-MM-dd HH:mm:ss\u300d\u5f62\u5f0f\u306e\u6587\u5b57\u5217\u3092\u4f7f\u7528\u3057\u3066\u3001\u65e5\u4ed8\u3092\u6307\u5b9a\u3055\u308c\u305f\u5f62\u5f0f\u306e\u6587\u5b57\u5217\u306b\u5909\u63db\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u65e5\u4ed8\u8a08\u7b97<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f ?time_delta \u3068 ?date_delta \u3092\u4f7f\u7528\u3057\u3066\u65e5\u4ed8\u306e\u8a08\u7b97\u3092\u8868\u3057\u3001\u65e5\u4ed8\u3092\u52a0\u7b97\u304a\u3088\u3073\u6e1b\u7b97\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lua\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${date?time_delta(1, \"days\")?string(\"yyyy-MM-dd\")}  \/\/ \u8f93\u51fa\"2023-04-28\"\n${date?date_delta(1, \"years\")?string(\"yyyy-MM-dd\")}  \/\/ \u8f93\u51fa\"2024-04-27\"\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001?time_delta \u95a2\u6570\u3068 ?date_delta \u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u65e5\u4ed8\u3092\u52a0\u7b97\u304a\u3088\u3073\u6e1b\u7b97\u3057\u3001?string \u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u65e5\u4ed8\u3092\u6307\u5b9a\u3055\u308c\u305f\u5f62\u5f0f\u306e\u6587\u5b57\u5217\u306b\u5909\u63db\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u65e5\u4ed8\u3068\u6642\u523b\u3092\u53d6\u5f97\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f ?date \u3068 ?time \u3092\u4f7f\u7528\u3057\u3066\u65e5\u4ed8\u3068\u6642\u523b\u3092\u8868\u3057\u3001\u73fe\u5728\u306e\u65e5\u4ed8\u3068\u6642\u523b\u3092\u53d6\u5f97\u3067\u304d\u307e\u3059\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lua\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>${.now?date?string(\"yyyy-MM-dd\")}\n${.now?time?string(\"HH:mm:ss\")}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001?date \u95a2\u6570\u3068 ?time \u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u73fe\u5728\u306e\u65e5\u4ed8\u3068\u6642\u523b\u3092\u53d6\u5f97\u3057\u3001?string \u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u65e5\u4ed8\u3068\u6642\u523b\u3092\u6307\u5b9a\u3055\u308c\u305f\u5f62\u5f0f\u306e\u6587\u5b57\u5217\u306b\u5909\u63db\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u65e5\u4ed8\u3068\u6642\u523b\u306e\u64cd\u4f5c\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u65e5\u4ed8\u3068\u6642\u523b\u306e\u64cd\u4f5c\u306f\u3001\u65e5\u4ed8\u578b\u306e\u5909\u6570\u3067\u306e\u307f\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u65e5\u4ed8\u3068\u6642\u523b\u306e\u64cd\u4f5c\u306f\u901a\u5e38\u3001\u65e5\u4ed8\u3068\u6642\u523b\u306e\u30c7\u30fc\u30bf\u3092\u8868\u793a\u304a\u3088\u3073\u64cd\u4f5c\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u3068\u304d\u306b\u65e5\u4ed8\u3092\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3057\u305f\u308a\u3001\u65e5\u4ed8\u3068\u6642\u523b\u3092\u8a08\u7b97\u3059\u308b\u3068\u304d\u306b\u52a0\u7b97\u304a\u3088\u3073\u6e1b\u7b97\u6f14\u7b97\u3092\u5b9f\u884c\u3057\u305f\u308a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u65e5\u4ed8\u3068\u6642\u523b\u306e\u64cd\u4f5c\u3092\u30cd\u30b9\u30c8\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u65e5\u4ed8\u3068\u6642\u523b\u306e\u64cd\u4f5c\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u306e\u65e5\u4ed8\u3068\u6642\u523b\u306e\u64cd\u4f5c\u306f\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u3092\u7fd2\u5f97\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u3088\u308a\u9069\u5207\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u306e\u8868\u793a\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\u65e5\u4ed8\u3068\u6642\u523b\u306e\u64cd\u4f5c\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u69cb\u6587\u306e\u6b63\u78ba\u6027\u3068\u4f7f\u7528\u65b9\u6cd5\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u5de5\u7a0b\u7ba1\u7406\u6761\u4ef6\u5224\u5b9a\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u30d7\u30ed\u30bb\u30b9\u5236\u5fa1\u6761\u4ef6\u5224\u5b9a\u306f\u3001FreeMarker \u3092\u4f7f\u7528\u3057\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3059. \u7570\u306a\u308b\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af\u306f\u3001\u7570\u306a\u308b\u6761\u4ef6\u306b\u5f93\u3063\u3066\u5b9f\u884c\u3067\u304d\u307e\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u30d7\u30ed\u30bb\u30b9\u5236\u5fa1\u6761\u4ef6\u5224\u5b9a\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>if \u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8<\/li>\n<\/ol>\n\n\n\n<p>if \u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306f\u3001\u3055\u307e\u3056\u307e\u306a\u6761\u4ef6\u306b\u5f93\u3063\u3066\u3055\u307e\u3056\u307e\u306a\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#if condition&gt;\n    code block1\n&lt;#elseif condition2&gt;\n    code block2\n&lt;#else&gt;\n    code block3\n&lt;\/#if&gt;\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u306e condition \u306f\u5224\u5b9a\u5bfe\u8c61\u306e\u6761\u4ef6\u5f0f\u3067\u3001\u3069\u3093\u306a\u5f0f\u3067\u3082\u304b\u307e\u3044\u307e\u305b\u3093\u3002\u6761\u4ef6\u304c\u771f\u306e\u5834\u5408\u306f\u30b3\u30fc\u30c9\u30d6\u30ed\u30c3\u30af1\u3092\u5b9f\u884c\u3057\u3001\u6761\u4ef6\u304c\u507d\u306e\u5834\u5408\u306f\u6761\u4ef62\u3092\u5224\u5b9a\u3057\u3001\u771f\u306e\u5834\u5408\u306f\u30b3\u30fc\u30c9\u30d6\u30ed\u30c3\u30af2\u3092\u5b9f\u884c\u3057\u3001\u305d\u3046\u3067\u306a\u3044\u5834\u5408\u306f\u30b3\u30fc\u30c9\u30d6\u30ed\u30c3\u30af3\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#if score &gt;= 90&gt;\n    &lt;p&gt;\u4f18\u79c0&lt;\/p&gt;\n&lt;#elseif score &gt;= 80&gt;\n    &lt;p&gt;\u826f\u597d&lt;\/p&gt;\n&lt;#elseif score &gt;= 70&gt;\n    &lt;p&gt;\u4e00\u822c&lt;\/p&gt;\n&lt;#else&gt;\n    &lt;p&gt;\u4e0d\u53ca\u683c&lt;\/p&gt;\n&lt;\/#if&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u7570\u306a\u308b\u5c0f\u6570\u30bb\u30b0\u30e1\u30f3\u30c8\u306b\u5f93\u3063\u3066\u3001\u7570\u306a\u308b\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>switch \u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8<\/li>\n<\/ol>\n\n\n\n<p>switch \u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3001\u3055\u307e\u3056\u307e\u306a\u5024\u306b\u5f93\u3063\u3066\u3055\u307e\u3056\u307e\u306a\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#switch value&gt;\n    &lt;#case condition1&gt;\n        code block1\n    &lt;#case condition2&gt;\n        code block2\n    &lt;#default&gt;\n        code block3\n&lt;\/#switch&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u3046\u3061\u3001value \u306f\u5224\u5b9a\u5bfe\u8c61\u306e\u5024\u3067\u3042\u308a\u3001\u4efb\u610f\u306e\u5024\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002\u5024\u304c\u6761\u4ef6 1 \u3068\u7b49\u3057\u3044\u5834\u5408\u306f\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af 1 \u3092\u5b9f\u884c\u3057\u3001\u5024\u304c\u6761\u4ef6 2 \u3068\u7b49\u3057\u3044\u5834\u5408\u306f\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af 2 \u3092\u5b9f\u884c\u3057\u3001\u305d\u308c\u4ee5\u5916\u306e\u5834\u5408\u306f\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af 3 \u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javascript\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#switch dayOfWeek&gt;\n    &lt;#case 1&gt;\n        &lt;p&gt;\u661f\u671f\u4e00&lt;\/p&gt;\n    &lt;#case 2&gt;\n        &lt;p&gt;\u661f\u671f\u4e8c&lt;\/p&gt;\n    &lt;#case 3&gt;\n        &lt;p&gt;\u661f\u671f\u4e09&lt;\/p&gt;\n    &lt;#case 4&gt;\n        &lt;p&gt;\u661f\u671f\u56db&lt;\/p&gt;\n    &lt;#case 5&gt;\n        &lt;p&gt;\u661f\u671f\u4e94&lt;\/p&gt;\n    &lt;#default&gt;\n        &lt;p&gt;\u5468\u672b&lt;\/p&gt;\n&lt;\/#switch&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u7570\u306a\u308b\u66dc\u65e5\u306b\u5fdc\u3058\u3066\u7570\u306a\u308b\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u6761\u4ef6\u5224\u65ad\u6587\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6761\u4ef6\u4ed8\u304d\u5224\u65ad\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u3092\u30cd\u30b9\u30c8\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u6761\u4ef6\u4ed8\u304d\u5224\u65ad\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306f\u3001\u5909\u6570\u3001\u6587\u5b57\u5217\u3001\u6570\u5024\u3001\u304a\u3088\u3073\u5f0f\u3067\u4f7f\u7528\u3057\u3066\u3001\u3088\u308a\u591a\u304f\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3 \u30b7\u30ca\u30ea\u30aa\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u6761\u4ef6\u5224\u65ad\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306f\u3001\u4ed6\u306e\u30d5\u30ed\u30fc\u5236\u5fa1\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8 (\u30eb\u30fc\u30d7\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306a\u3069) \u3068\u4e00\u7dd2\u306b\u4f7f\u7528\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u30ed\u30b8\u30c3\u30af\u3068\u6a5f\u80fd\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u5de5\u7a0b\u7ba1\u7406\u6761\u4ef6\u5224\u5b9a\u306f\u3001FreeMarker \u3092\u4f7f\u7528\u3057\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u304c\u3088\u308a\u9069\u5207\u306b\u5b9f\u884c\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u4f7f\u7528\u306b\u95a2\u3057\u3066<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u6587\u3092\u5224\u65ad\u3059\u308b\u3068\u304d\u306f\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u305f\u3081\u3001\u6587\u6cd5\u306e\u6b63\u78ba\u3055\u3068\u4f7f\u7528\u6cd5\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3092\u6255\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u5b9f\u7528\u5316\u306b\u3042\u305f\u3063\u3066\u306f\u3001\u671f\u5f85\u3055\u308c\u308b\u6a5f\u80fd\u3084\u52b9\u679c\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306b\u3001\u5177\u4f53\u7684\u306a\u30b7\u30ca\u30ea\u30aa\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u6761\u4ef6\u5224\u65ad\u6587\u3092\u9078\u629e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u30d5\u30ed\u30fc\u5236\u5fa1\u30ea\u30b9\u30c8\u51e6\u7406\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u30d7\u30ed\u30bb\u30b9 \u30b3\u30f3\u30c8\u30ed\u30fc\u30eb \u30ea\u30b9\u30c8\u51e6\u7406\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u30ea\u30b9\u30c8\u306e\u51e6\u7406\u3068\u8868\u793a\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u30d7\u30ed\u30bb\u30b9 \u30b3\u30f3\u30c8\u30ed\u30fc\u30eb \u30ea\u30b9\u30c8\u51e6\u7406\u3092\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>foreach \u30eb\u30fc\u30d7<\/li>\n<\/ol>\n\n\n\n<p>foreach \u30eb\u30fc\u30d7\u3092\u4f7f\u7528\u3057\u3066\u3001\u30ea\u30b9\u30c8\u5185\u306e\u5404\u8981\u7d20\u3092\u30c8\u30e9\u30d0\u30fc\u30b9\u3067\u304d\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#list list as item&gt;\n    code block\n&lt;\/#list&gt;\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001list \u306f\u30c8\u30e9\u30d0\u30fc\u30b9\u3059\u308b\u30ea\u30b9\u30c8\u3067\u3042\u308a\u3001item \u306f\u5404\u8981\u7d20\u306e\u540d\u524d\u3067\u3042\u308a\u3001\u4efb\u610f\u306e\u540d\u524d\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u30eb\u30fc\u30d7\u3067\u306f\u3001${item} \u3092\u4f7f\u7528\u3057\u3066\u73fe\u5728\u306e\u8981\u7d20\u306e\u5024\u3092\u8868\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;#list scores as score&gt;\n    ${score}&lt;br&gt;\n&lt;\/#list&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30b9\u30b3\u30a2 \u30ea\u30b9\u30c8\u3092\u7e70\u308a\u8fd4\u3057\u51e6\u7406\u3057\u3001\u5404\u30b9\u30b3\u30a2\u3092\u51fa\u529b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u5909\u6570\u3068\u30a2\u30a4\u30c6\u30e0\u5909\u6570<\/li>\n<\/ol>\n\n\n\n<p>foreach \u30eb\u30fc\u30d7\u3067\u306f\u3001index \u5909\u6570\u3068 item \u5909\u6570\u3092\u4f7f\u7528\u3057\u3066\u3001\u73fe\u5728\u306e\u8981\u7d20\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3068\u5024\u3092\u8868\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;#list scores as score&gt;\n    ${index + 1}. ${score}&lt;br&gt;\n&lt;\/#list&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30b9\u30b3\u30a2 \u30ea\u30b9\u30c8\u306e\u5404\u8981\u7d20\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3068\u5024\u3092\u51fa\u529b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>if\u6587\u3068break\u547d\u4ee4<\/li>\n<\/ol>\n\n\n\n<p>foreach \u30eb\u30fc\u30d7\u3067\u306f\u3001if \u6587\u3068 break \u547d\u4ee4\u3092\u4f7f\u7528\u3057\u3066\u6761\u4ef6\u5224\u65ad\u3092\u884c\u3044\u3001\u30eb\u30fc\u30d7\u304b\u3089\u629c\u3051\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;#list scores as score&gt;\n    &lt;#if score &lt; 60&gt;\n        &lt;p&gt;\u4e0d\u53ca\u683c&lt;\/p&gt;\n        &lt;#break&gt;\n    &lt;\/#if&gt;\n    ${score}&lt;br&gt;\n&lt;\/#list&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30b9\u30b3\u30a2\u304c 60 \u672a\u6e80\u306e\u5834\u5408\u3001\u300cFail\u300d\u3092\u51fa\u529b\u3057\u3066\u30eb\u30fc\u30d7\u3092\u629c\u3051\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30ea\u30b9\u30c8\u3092\u64cd\u4f5c\u3059\u308b\u3068\u304d\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u901a\u5e38\u3001\u30ea\u30b9\u30c8\u51e6\u7406\u306f\u3001\u30c6\u30fc\u30d6\u30eb\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u969b\u306e\u30ea\u30b9\u30c8\u306e\u8d70\u67fb\u3068\u51e6\u7406\u306a\u3069\u3001\u30ea\u30b9\u30c8 \u30c7\u30fc\u30bf\u306e\u8868\u793a\u3068\u51e6\u7406\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30ea\u30b9\u30c8\u51e6\u7406\u3092\u30cd\u30b9\u30c8\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u30ea\u30b9\u30c8\u51e6\u7406\u3068\u8868\u793a\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30ea\u30b9\u30c8\u51e6\u7406\u306f\u3001\u4ed6\u306e\u30d5\u30ed\u30fc\u5236\u5fa1\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8 (\u6761\u4ef6\u5224\u65ad\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306a\u3069) \u3068\u4f75\u7528\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u30ed\u30b8\u30c3\u30af\u3068\u6a5f\u80fd\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u30d7\u30ed\u30bb\u30b9 \u30b3\u30f3\u30c8\u30ed\u30fc\u30eb \u30ea\u30b9\u30c8\u306e\u51e6\u7406\u306f\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u3088\u308a\u9069\u5207\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\u30ea\u30b9\u30c8\u51e6\u7406\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3057\u3066\u3001\u69cb\u6587\u306e\u6b63\u78ba\u6027\u3068\u4f7f\u7528\u65b9\u6cd5\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u30d5\u30ed\u30fc\u5236\u5fa1\u30de\u30c3\u30d4\u30f3\u30b0\u51e6\u7406\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u30d7\u30ed\u30bb\u30b9 \u30b3\u30f3\u30c8\u30ed\u30fc\u30eb \u30de\u30c3\u30d4\u30f3\u30b0\u51e6\u7406\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u30de\u30c3\u30d4\u30f3\u30b0\u306e\u51e6\u7406\u3068\u8868\u793a\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u30d7\u30ed\u30bb\u30b9 \u30b3\u30f3\u30c8\u30ed\u30fc\u30eb \u30de\u30c3\u30d4\u30f3\u30b0\u51e6\u7406\u3092\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>foreach \u30eb\u30fc\u30d7<\/li>\n<\/ol>\n\n\n\n<p>foreach \u30eb\u30fc\u30d7\u3092\u4f7f\u7528\u3057\u3066\u3001\u30de\u30c3\u30d7\u5185\u306e\u5404\u30ad\u30fc\u3068\u5024\u306e\u30da\u30a2\u3092\u30c8\u30e9\u30d0\u30fc\u30b9\u3067\u304d\u307e\u3059\u3002\u69cb\u6587\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;#list map?keys as key&gt;\n    ${key}: ${map[key]}&lt;br&gt;\n&lt;\/#list&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u3053\u3067\u3001map \u306f\u30c8\u30e9\u30d0\u30fc\u30b9\u3059\u308b\u30de\u30c3\u30d7\u3001key \u306f\u5404\u30ad\u30fc\u306e\u540d\u524d\u3067\u3001\u4efb\u610f\u306e\u540d\u524d\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u30eb\u30fc\u30d7\u3067\u306f\u3001${key} \u3092\u4f7f\u7528\u3057\u3066\u73fe\u5728\u306e\u30ad\u30fc\u306e\u540d\u524d\u3092\u8868\u3057\u3001${map[key]} \u3092\u4f7f\u7528\u3057\u3066\u73fe\u5728\u306e\u30ad\u30fc\u306e\u5024\u3092\u8868\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;#list user as key&gt;\n    ${key}: ${user[key]}&lt;br&gt;\n&lt;\/#list&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u30de\u30c3\u30d7\u304c\u30c8\u30e9\u30d0\u30fc\u30b9\u3055\u308c\u3001\u5404\u30ad\u30fc\u3068\u5024\u306e\u30da\u30a2\u306e\u540d\u524d\u3068\u5024\u304c\u51fa\u529b\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>if\u6587\u3068else\u547d\u4ee4<\/li>\n<\/ol>\n\n\n\n<p>\u30de\u30c3\u30d4\u30f3\u30b0\u51e6\u7406\u3067\u306f\u3001if\u6587\u3084else\u547d\u4ee4\u3092\u4f7f\u7528\u3057\u3066\u6761\u4ef6\u5224\u5b9a\u3092\u884c\u3044\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u51fa\u529b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#if user[\"age\"]??&gt;\n    ${user[\"age\"]}\n&lt;#else&gt;\n    \u672a\u586b\u5199\n&lt;\/#if&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u30de\u30c3\u30d7\u306b\u300c\u5e74\u9f62\u300d\u30ad\u30fc\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306f\u30ad\u30fc\u306e\u5024\u3092\u51fa\u529b\u3057\u3001\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306f\u300c\u672a\u5165\u529b\u300d\u3092\u51fa\u529b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30de\u30c3\u30d4\u30f3\u30b0\u51e6\u7406\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u901a\u5e38\u3001\u30de\u30c3\u30d7\u51e6\u7406\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u969b\u306e\u30de\u30c3\u30d7\u306e\u30c8\u30e9\u30d0\u30fc\u30b9\u3068\u51e6\u7406\u306a\u3069\u3001\u30de\u30c3\u30d7 \u30c7\u30fc\u30bf\u306e\u8868\u793a\u3068\u51e6\u7406\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30de\u30c3\u30d4\u30f3\u30b0\u51e6\u7406\u3092\u30cd\u30b9\u30c8\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u30de\u30c3\u30d4\u30f3\u30b0\u51e6\u7406\u3068\u8868\u793a\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30de\u30c3\u30d4\u30f3\u30b0\u51e6\u7406\u306f\u3001\u4ed6\u306e\u30d5\u30ed\u30fc\u5236\u5fa1\u6587 (\u6761\u4ef6\u5224\u5b9a\u6587\u306a\u3069) \u3068\u4f75\u7528\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u30ed\u30b8\u30c3\u30af\u3068\u6a5f\u80fd\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u30d7\u30ed\u30bb\u30b9 \u30b3\u30f3\u30c8\u30ed\u30fc\u30eb \u30de\u30c3\u30d4\u30f3\u30b0\u51e6\u7406\u306f\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u3088\u308a\u9069\u5207\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u30de\u30c3\u30d4\u30f3\u30b0\u51e6\u7406\u3092\u5229\u7528\u3059\u308b\u969b\u306f\u3001FreeMarker\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3084\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u8003\u306b\u3001\u6587\u6cd5\u306e\u6b63\u78ba\u3055\u3084\u4f7f\u3044\u65b9\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u5b9a\u7fa9\u30de\u30af\u30ed\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u5b9a\u7fa9\u30de\u30af\u30ed\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3059. \u3053\u308c\u3089\u306f\u3001\u72ec\u81ea\u306e\u95a2\u6570\u3068\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af\u3092\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u5b9a\u7fa9\u30de\u30af\u30ed\u3092\u8a73\u7d30\u306b\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30de\u30af\u30ed\u5b9a\u7fa9<\/li>\n<\/ol>\n\n\n\n<p>\u30de\u30af\u30ed\u5b9a\u7fa9\u3092\u4f7f\u7528\u3057\u3066\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u8907\u6570\u56de\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u308b\u72ec\u81ea\u306e\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af\u3092\u5b9a\u7fa9\u3067\u304d\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#macro name [parameters]&gt;\n    code block\n&lt;\/#macro&gt;\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001name \u306f\u30de\u30af\u30ed\u306e\u540d\u524d\u3067\u3001parameters \u306f\u30de\u30af\u30ed\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc \u30ea\u30b9\u30c8\u3067\u3001\u4efb\u610f\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002\u30de\u30af\u30ed\u3067\u306f\u3001${parameters} \u3092\u4f7f\u7528\u3057\u3066\u30de\u30af\u30ed\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u5024\u3092\u8868\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;#macro hello name&gt;\n    Hello, ${name}!\n&lt;\/#macro&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u540d\u524d\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u53d7\u3051\u53d6\u308a\u3001\u300cHello, ${name}!\u300d\u3092\u51fa\u529b\u3059\u308b\u3001hello \u3068\u3044\u3046\u540d\u524d\u306e\u30de\u30af\u30ed\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u30de\u30af\u30ed\u3092\u547c\u3073\u51fa\u3059\u3068\u304d\u306f\u3001\u6b21\u306e\u69cb\u6587\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">css\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;@name parameter1=xxx parameter2=xxx ... \/&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u3046\u3061\u3001name \u306f\u30de\u30af\u30ed\u306e\u540d\u524d\u3001parameter1\u3001parameter2 \u306a\u3069\u306f\u30de\u30af\u30ed\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u540d\u3001xxx \u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u5024\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">css\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;@hello name=\"John\" \/&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001hello \u3068\u3044\u3046\u30de\u30af\u30ed\u304c\u547c\u3073\u51fa\u3055\u308c\u3001\u540d\u524d\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6e21\u3057\u3001&#8221;Hello, John!&#8221; \u3092\u51fa\u529b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u95a2\u6570\u5b9a\u7fa9\u30de\u30af\u30ed<\/li>\n<\/ol>\n\n\n\n<p>\u95a2\u6570\u5b9a\u7fa9\u30de\u30af\u30ed\u3092\u4f7f\u7528\u3057\u3066\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5185\u3067\u8907\u6570\u56de\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u308b\u72ec\u81ea\u306e\u95a2\u6570\u3092\u5b9a\u7fa9\u3067\u304d\u307e\u3059\u3002\u69cb\u6587\u5f62\u5f0f\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#function name [parameters]&gt;\n    code block\n&lt;\/#function&gt;\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001 name \u306f\u95a2\u6570\u306e\u540d\u524d\u3067\u3001 parameters \u306f\u95a2\u6570\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc \u30ea\u30b9\u30c8\u3067\u3001\u4efb\u610f\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002\u95a2\u6570\u3067\u306f\u3001return \u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u3092\u4f7f\u7528\u3057\u3066\u95a2\u6570\u306e\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sql\u30b3\u30d4\u30fc\u30b3\u30fc\u30c9<code>&lt;#function add x y&gt;\n    &lt;#return x + y&gt;\n&lt;\/#function&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u30012 \u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc x \u3068 y \u3092\u53d7\u3051\u53d6\u308a\u3001x+y \u306e\u5024\u3092\u8fd4\u3059 add \u3068\u3044\u3046\u95a2\u6570\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u95a2\u6570\u3092\u547c\u3073\u51fa\u3059\u3068\u304d\u306f\u3001\u6b21\u306e\u69cb\u6587\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">scss\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>${name(parameter1, parameter2, ...)}\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001name \u306f\u95a2\u6570\u306e\u540d\u524d\u3001parameter1\u3001parameter2 \u306a\u3069\u306f\u95a2\u6570\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u540d\u3067\u3042\u308a\u3001\u4efb\u610f\u306e\u5f0f\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">scss\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>${add(1, 2)}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001add \u3068\u3044\u3046\u540d\u524d\u306e\u95a2\u6570\u304c 2 \u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc 1 \u3068 2 \u3067\u547c\u3073\u51fa\u3055\u308c\u30013 \u304c\u8fd4\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30de\u30af\u30ed\u304a\u3088\u3073\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u30de\u30af\u30ed\u3092\u5b9a\u7fa9\u3059\u308b\u5834\u5408\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30de\u30af\u30ed\u3068\u95a2\u6570\u306e\u5b9a\u7fa9 \u30de\u30af\u30ed\u306f\u901a\u5e38\u3001\u72ec\u81ea\u306e\u95a2\u6570\u3068\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af\u3092\u5b9a\u7fa9\u3057\u3066\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u518d\u5229\u7528\u3068\u30e2\u30b8\u30e5\u30fc\u30eb\u958b\u767a\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30de\u30af\u30ed\u3068\u95a2\u6570\u306e\u5b9a\u7fa9 \u30de\u30af\u30ed\u3092\u30cd\u30b9\u30c8\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u95a2\u6570\u3068\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af\u3092\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30de\u30af\u30ed\u3068\u95a2\u6570\u306e\u5b9a\u7fa9 \u30de\u30af\u30ed\u3092\u4ed6\u306e\u30d5\u30ed\u30fc\u5236\u5fa1\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8 (\u6761\u4ef6\u5224\u65ad\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306a\u3069) \u3068\u4e00\u7dd2\u306b\u4f7f\u7528\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u30ed\u30b8\u30c3\u30af\u3068\u95a2\u6570\u3092\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u5b9a\u7fa9\u30de\u30af\u30ed\u306f\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u3088\u308a\u9069\u5207\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\u30de\u30af\u30ed\u304a\u3088\u3073\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u30de\u30af\u30ed\u3092\u5b9a\u7fa9\u3059\u308b\u5834\u5408<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u547c\u3073\u51fa\u3057\u30de\u30af\u30ed\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker&#8217;s macros and function call macros are a important part of using FreeMarker for template rendering, and can be used to call custom functions and code blocks. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u547c\u3073\u51fa\u3057\u30de\u30af\u30ed\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30de\u30af\u30ed\u547c\u3073\u51fa\u3057<\/li>\n<\/ol>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u30de\u30af\u30ed\u3092\u547c\u3073\u51fa\u3059\u3068\u304d\u306f\u3001\u6b21\u306e\u69cb\u6587\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">css\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;@name parameter1=xxx parameter2=xxx ... \/&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u3046\u3061\u3001name \u306f\u30de\u30af\u30ed\u306e\u540d\u524d\u3001parameter1\u3001parameter2 \u306a\u3069\u306f\u30de\u30af\u30ed\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u540d\u3001xxx \u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u5024\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;#macro hello name&gt;\n    Hello, ${name}!\n&lt;\/#macro&gt;\n\n&lt;@hello name=\"John\" \/&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001hello \u3068\u3044\u3046\u30de\u30af\u30ed\u304c\u547c\u3073\u51fa\u3055\u308c\u3001\u540d\u524d\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6e21\u3057\u3001&#8221;Hello, John!&#8221; \u3092\u51fa\u529b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30de\u30af\u30ed\u3092\u547c\u3073\u51fa\u3059\u969b\u306b\u3001if\u6587\u3084foreach\u30eb\u30fc\u30d7\u306a\u3069\u306e\u30d5\u30ed\u30fc\u5236\u5fa1\u6587\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u8907\u96d1\u306a\u30ed\u30b8\u30c3\u30af\u3084\u6a5f\u80fd\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u95a2\u6570\u547c\u3073\u51fa\u3057<\/li>\n<\/ol>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u95a2\u6570\u3092\u547c\u3073\u51fa\u3059\u3068\u304d\u306f\u3001\u6b21\u306e\u69cb\u6587\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">scss\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>${name(parameter1, parameter2, ...)}\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001name \u306f\u95a2\u6570\u306e\u540d\u524d\u3001parameter1\u3001parameter2 \u306a\u3069\u306f\u95a2\u6570\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u540d\u3067\u3042\u308a\u3001\u4efb\u610f\u306e\u5f0f\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sql\u30b3\u30d4\u30fc\u30b3\u30fc\u30c9<code>&lt;#function add x y&gt;\n    &lt;#return x + y&gt;\n&lt;\/#function&gt;\n\n${add(1, 2)}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001add \u3068\u3044\u3046\u540d\u524d\u306e\u95a2\u6570\u304c 2 \u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc 1 \u3068 2 \u3067\u547c\u3073\u51fa\u3055\u308c\u30013 \u304c\u8fd4\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u95a2\u6570\u3092\u547c\u3073\u51fa\u3059\u969b\u3001if\u6587\u3084foreach\u30eb\u30fc\u30d7\u306a\u3069\u306e\u30d5\u30ed\u30fc\u5236\u5fa1\u6587\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u8907\u96d1\u306a\u30ed\u30b8\u30c3\u30af\u3084\u6a5f\u80fd\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30de\u30af\u30ed\u304a\u3088\u3073\u95a2\u6570\u547c\u3073\u51fa\u3057\u30de\u30af\u30ed\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30de\u30af\u30ed\u3068\u95a2\u6570\u547c\u3073\u51fa\u3057 \u30de\u30af\u30ed\u306f\u901a\u5e38\u3001\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u3068\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af\u3092\u547c\u3073\u51fa\u3057\u3066\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u518d\u5229\u7528\u3068\u30e2\u30b8\u30e5\u30fc\u30eb\u958b\u767a\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30de\u30af\u30ed\u3068\u95a2\u6570\u547c\u3073\u51fa\u3057 \u30de\u30af\u30ed\u306f\u3001\u3088\u308a\u8907\u96d1\u306a\u95a2\u6570\u3068\u30b3\u30fc\u30c9 \u30d6\u30ed\u30c3\u30af\u306e\u547c\u3073\u51fa\u3057\u306e\u305f\u3081\u306b\u30cd\u30b9\u30c8\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30de\u30af\u30ed\u3068\u95a2\u6570\u547c\u3073\u51fa\u3057 \u30de\u30af\u30ed\u3092\u4ed6\u306e\u30d5\u30ed\u30fc\u5236\u5fa1\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8 (\u6761\u4ef6\u5224\u65ad\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306a\u3069) \u3068\u4e00\u7dd2\u306b\u4f7f\u7528\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u30ed\u30b8\u30c3\u30af\u3068\u95a2\u6570\u3092\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u547c\u3073\u51fa\u3057\u30de\u30af\u30ed\u306f\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u3088\u308a\u9069\u5207\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\u30de\u30af\u30ed\u3084\u95a2\u6570\u547c\u3073\u51fa\u3057\u30de\u30af\u30ed\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3084\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u8003\u306b\u3057\u3066\u3001\u69cb\u6587\u306e\u6b63\u78ba\u3055\u3084\u4f7f\u3044\u65b9\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u306e\u7d44\u307f\u8fbc\u307f\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306b\u306f\u3001\u3088\u308a\u8c4a\u5bcc\u306a\u30c7\u30fc\u30bf\u64cd\u4f5c\u3068\u51e6\u7406\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306b\u30de\u30af\u30ed\u3084\u95a2\u6570\u3067\u4f7f\u7528\u3067\u304d\u308b\u591a\u304f\u306e\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u306e\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6587\u5b57\u5217\u64cd\u4f5c\u95a2\u6570<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001\u6587\u5b57\u5217\u3092\u51e6\u7406\u304a\u3088\u3073\u64cd\u4f5c\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u308b\u591a\u304f\u306e\u6587\u5b57\u5217\u64cd\u4f5c\u95a2\u6570\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>length: \u6587\u5b57\u5217\u306e\u9577\u3055\u3092\u8fd4\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30c8\u30ea\u30e0: \u6587\u5b57\u5217\u306e\u4e21\u7aef\u304b\u3089\u30b9\u30da\u30fc\u30b9\u3092\u524a\u9664\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>substring: \u6587\u5b57\u5217\u306e\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30c8\u90e8\u5206\u3002<\/li>\n\n\n\n<li>replace: \u6587\u5b57\u5217\u306e\u90e8\u5206\u6587\u5b57\u5217\u3092\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002<\/li>\n\n\n\n<li>split: \u6587\u5b57\u5217\u3092\u30ea\u30b9\u30c8\u306b\u5206\u5272\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduino\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#macro hello name&gt;\n    Hello, ${name?cap_first}!\n&lt;\/#macro&gt;\n\n${\"hello world\"?replace(\"world\", \"FreeMarker\")}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001replace \u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u3001\u300chello world\u300d\u306e\u300cworld\u300d\u3092\u300cFreeMarker\u300d\u306b\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u6570\u5024\u64cd\u4f5c\u95a2\u6570<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001\u6570\u5024\u3092\u51e6\u7406\u304a\u3088\u3073\u64cd\u4f5c\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u308b\u591a\u304f\u306e\u6570\u5024\u64cd\u4f5c\u95a2\u6570\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>abs: \u6570\u5024\u306e\u7d76\u5bfe\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>round: \u5024\u3092\u4e38\u3081\u307e\u3059\u3002<\/li>\n\n\n\n<li>floor: \u6570\u5024\u306f\u5207\u308a\u6368\u3066\u3067\u3059\u3002<\/li>\n\n\n\n<li>\u4e0a\u9650: \u5024\u3092\u5207\u308a\u4e0a\u3052\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;#function tax price&gt;\n    &lt;#return price * 0.08&gt;\n&lt;\/#function&gt;\n\n${tax(1000)?round}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30e9\u30a6\u30f3\u30c9\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u7a0e\u91d1\u3092\u8a08\u7b97\u3057\u30011000 \u5143\u306e\u5546\u54c1\u4fa1\u683c\u3092\u5207\u308a\u4e0a\u3052\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u65e5\u6642\u64cd\u4f5c\u95a2\u6570<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001\u65e5\u4ed8\u3068\u6642\u523b\u306e\u51e6\u7406\u3068\u64cd\u4f5c\u306b\u4f7f\u7528\u3067\u304d\u308b\u591a\u304f\u306e\u65e5\u4ed8\u3068\u6642\u523b\u306e\u64cd\u4f5c\u95a2\u6570\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>date: \u65e5\u4ed8\u3068\u6642\u523b\u3092\u6587\u5b57\u5217\u3068\u3057\u3066\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>time: \u73fe\u5728\u306e\u6642\u523b\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>number_to_date: \u6570\u5024\u3092\u65e5\u4ed8\u306b\u5909\u63db\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lua\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#assign date = \"2023-04-27\"?date(\"yyyy-MM-dd\")&gt;\n\n${date?date(\"MMM d, yyyy\")}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u6587\u5b57\u5217 &#8220;2023-04-27&#8221; \u304c\u65e5\u4ed8\u306b\u5909\u63db\u3055\u308c\u3001\u65e5\u4ed8\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u65e5\u4ed8\u304c &#8220;MMM d, yyyy&#8221; \u306e\u5f62\u5f0f\u306e\u6587\u5b57\u5217\u306b\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u30c7\u30fc\u30bf\u3092\u51e6\u7406\u304a\u3088\u3073\u64cd\u4f5c\u3067\u304d\u308b\u305f\u3081\u3001\u30b3\u30fc\u30c9\u306e\u8a18\u8ff0\u3068\u4fdd\u5b88\u304c\u5927\u5e45\u306b\u7c21\u7d20\u5316\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u306e\u69cb\u6587\u3068\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc \u30ea\u30b9\u30c8\u306f\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3067\u898b\u3064\u3051\u3066\u8abf\u3079\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u306f\u3001\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u304a\u3088\u3073\u30de\u30af\u30ed\u306e\u5b9f\u88c5\u306b\u3082\u4f7f\u7528\u3057\u3066\u3001\u305d\u308c\u3089\u306e\u6a5f\u80fd\u3068\u52b9\u7387\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u306e\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u306f\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u3088\u308a\u9069\u5207\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3084\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3057\u3066\u3001\u6587\u6cd5\u306e\u6b63\u78ba\u3055\u3084\u4f7f\u7528\u65b9\u6cd5\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u306e\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u306e\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b FreeMarker \u3092\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u72ec\u81ea\u306e\u95a2\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u306e\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u3092\u8a73\u7d30\u306b\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u95a2\u6570\u5b9a\u7fa9<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u3067\u306f\u3001&lt;#function&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u95a2\u6570\u3092\u5b9a\u7fa9\u3067\u304d\u307e\u3059. \u95a2\u6570\u5b9a\u7fa9\u306e\u69cb\u6587\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javascript\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#function function_name(param1, param2, ...)&gt;\n    Function body\n&lt;\/#function&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u3046\u3061\u3001function_name \u306f\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u306e\u540d\u524d\u3067\u3001param1\u3001param2 \u306a\u3069\u306f\u95a2\u6570\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u540d\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u305f\u3068\u3048\u3070\u3001a+b \u306e\u95a2\u6570\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306b\u30012 \u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc a \u3068 b \u3092\u53d7\u3051\u5165\u308c\u308b\u95a2\u6570 add \u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#function add(a, b)&gt;\n    &lt;#return a + b&gt;\n&lt;\/#function&gt;\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u95a2\u6570\u547c\u3073\u51fa\u3057<\/li>\n<\/ol>\n\n\n\n<p>In FreeMarker, you can use the ${} tag to call the function. \u95a2\u6570\u547c\u3073\u51fa\u3057\u306e\u69cb\u6587\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">scss\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>${function_name(param1, param2, ...)}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u3046\u3061\u3001function_name \u306f\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u306e\u540d\u524d\u3067\u3001param1\u3001param2 \u306a\u3069\u306f\u95a2\u6570\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u540d\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u305f\u3068\u3048\u3070\u3001add \u95a2\u6570\u3092\u547c\u3073\u51fa\u3059\u3068\u3001\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">scss\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>${add(1, 2)}\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u95a2\u6570\u306e\u623b\u308a\u5024<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u3067\u306f\u3001&lt;#return&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u3001\u95a2\u6570\u306e\u623b\u308a\u5024\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059. &lt;#return&gt; \u30bf\u30b0\u306e\u69cb\u6587\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">kotlin\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;#return expression&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u3053\u3067\u3001expression \u306f\u8fd4\u3059\u5024\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u305f\u3068\u3048\u3070\u3001\u95a2\u6570 add \u306e\u623b\u308a\u5024\u306f a+b \u3067\u3042\u308a\u3001\u3053\u308c\u306f &lt;#return&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#function add(a, b)&gt;\n    &lt;#return a + b&gt;\n&lt;\/#function&gt;\n<\/code><\/pre>\n\n\n\n<p>\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u306f\u901a\u5e38\u3001\u30c7\u30fc\u30bf\u3092\u51e6\u7406\u304a\u3088\u3073\u64cd\u4f5c\u3057\u3066\u3001\u3088\u308a\u8c4a\u5bcc\u306a\u95a2\u6570\u3068\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u306f\u3001\u6587\u5b57\u5217\u3001\u6570\u5024\u3001\u65e5\u4ed8\u306a\u3069\u3001\u3042\u3089\u3086\u308b\u30bf\u30a4\u30d7\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u53d7\u3051\u5165\u308c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u306f\u3001FreeMarker \u306e\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u51e6\u7406\u304a\u3088\u3073\u64cd\u4f5c\u3067\u304d\u308b\u305f\u3081\u3001\u30b3\u30fc\u30c9\u306e\u8a18\u8ff0\u3068\u4fdd\u5b88\u304c\u7c21\u7d20\u5316\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u306e\u578b\u3068\u6570\u3001\u304a\u3088\u3073\u623b\u308a\u5024\u306e\u578b\u3068\u5f62\u5f0f\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u30de\u30af\u30ed\u3068\u95a2\u6570\u306e\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u306f\u3001FreeMarker \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3059\u308b\u4e0a\u3067\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u3088\u308a\u9069\u5207\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3084\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3057\u3066\u3001\u6587\u6cd5\u306e\u6b63\u78ba\u6027\u3068\u4f7f\u7528\u65b9\u6cd5\u306e\u5408\u7406\u6027\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044 FreeMarker\u306e\u30c7\u30fc\u30bf\u30e2\u30c7\u30eb \u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\u306e\u7d39\u4ecb<\/p>\n\n\n\n<p>FreeMarker \u306e\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306f\u3001\u5909\u6570\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u30cf\u30c3\u30b7\u30e5 \u30c6\u30fc\u30d6\u30eb\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306a\u3069\u3092\u542b\u3080\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u304c\u4f9d\u5b58\u3059\u308b\u30c7\u30fc\u30bf\u69cb\u9020\u3092\u53c2\u7167\u3057\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u30c7\u30fc\u30bf\u306f\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u304b\u3089\u6e21\u3059\u304b\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5909\u6570<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306e\u5909\u6570\u306f\u3001\u6570\u5024\u3001\u6587\u5b57\u5217\u3001\u30d6\u30fc\u30eb\u5024\u306a\u3069\u306e\u57fa\u672c\u7684\u306a\u30c7\u30fc\u30bf\u578b\u3001\u307e\u305f\u306f\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u30cf\u30c3\u30b7\u30e5 \u30c6\u30fc\u30d6\u30eb\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306a\u3069\u306e\u8907\u5408\u30c7\u30fc\u30bf\u578b\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u5909\u6570\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001\u53c2\u7167\u306b\u306f ${} \u30bf\u30b0\u307e\u305f\u306f #{} \u30bf\u30b0\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>${name}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001name \u3068\u3044\u3046\u540d\u524d\u306e\u5909\u6570\u304c\u53c2\u7167\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u96c6\u5408<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306f\u3001\u914d\u5217\u3001\u30ea\u30b9\u30c8\u3001\u30bb\u30c3\u30c8\u306a\u3069\u306e\u30c7\u30fc\u30bf\u69cb\u9020\u3067\u3042\u308a\u3001\u540c\u3058\u30bf\u30a4\u30d7\u306e\u30c7\u30fc\u30bf\u306e\u30bb\u30c3\u30c8\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">less\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#assign list = [\"apple\", \"banana\", \"orange\"]&gt;\n\n&lt;#list list as item&gt;\n    ${item}\n&lt;\/#list&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u30013 \u3064\u306e\u8981\u7d20\u3092\u542b\u3080\u30ea\u30b9\u30c8 list \u3092\u5b9a\u7fa9\u3057\u3001&lt;#list&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30b9\u30c8\u3092\u8d70\u67fb\u3057\u3001\u5404\u8981\u7d20\u306e\u5024\u3092\u51fa\u529b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30cf\u30c3\u30b7\u30e5\u8868<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306e\u30cf\u30c3\u30b7\u30e5 \u30c6\u30fc\u30d6\u30eb\u3092\u4f7f\u7528\u3057\u3066\u3001\u30ad\u30fc\u3068\u5024\u306e\u30da\u30a2 \u30c7\u30fc\u30bf\u3092\u683c\u7d0d\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arduino\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#assign map = {\"name\": \"John\", \"age\": 30}&gt;\n\n${map.name}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u30012 \u3064\u306e\u30ad\u30fc\u3068\u5024\u306e\u30da\u30a2\u3092\u542b\u3080\u30cf\u30c3\u30b7\u30e5 \u30c6\u30fc\u30d6\u30eb \u30de\u30c3\u30d7\u3092\u5b9a\u7fa9\u3057\u3001map.name \u3092\u4f7f\u7528\u3057\u3066 name \u30ad\u30fc\u306b\u5bfe\u5fdc\u3059\u308b\u5024\u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u7269\u4f53<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u3001\u6b21\u306e\u3088\u3046\u306a\u8907\u96d1\u306a\u30c7\u30fc\u30bf\u69cb\u9020\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306e JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u307e\u305f\u306f\u30ab\u30b9\u30bf\u30e0 Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;#assign user = new com.example.User(\"John\", 30)&gt;\n\n${user.name}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001name \u5c5e\u6027\u3068 age \u5c5e\u6027\u3092\u542b\u3080 JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8 user \u3092\u5b9a\u7fa9\u3057\u3001user.name \u3092\u4f7f\u7528\u3057\u3066 name \u5c5e\u6027\u306b\u5bfe\u5fdc\u3059\u308b\u5024\u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>FreeMarker \u306e\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u57fa\u790e\u3067\u3042\u308a\u3001\u30c7\u30fc\u30bf\u306e\u6b63\u78ba\u6027\u3068\u5b8c\u5168\u6027\u3092\u4fdd\u8a3c\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u6b63\u3057\u304f\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u306b\u306f\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306e\u30c7\u30fc\u30bf\u578b\u3068\u30c7\u30fc\u30bf\u69cb\u9020\u304c\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30cb\u30fc\u30ba\u306b\u4e00\u81f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\u306f\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u52d5\u7684\u306b\u751f\u6210\u3059\u308b\u3053\u3068\u3082\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u76f4\u63a5\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u3001\u7279\u5b9a\u306e\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u3092\u4f7f\u7528\u3057\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3067\u306f\u3001FreeMarker \u306e\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u304c\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u304c\u3088\u308a\u9069\u5207\u306b\u5b9f\u884c\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u30c7\u30fc\u30bf\u306e\u578b\u3001\u69cb\u9020\u3001\u304a\u3088\u3073\u6574\u5408\u6027\u306b\u6ce8\u610f\u3092\u6255\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3089\u3059\u3079\u3066\u306b\u3064\u3044\u3066\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\u306e\u30c7\u30fc\u30bf\u578b\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306e\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306b\u306f\u3001\u57fa\u672c\u7684\u306a\u30c7\u30fc\u30bf\u578b\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u578b\u3001\u30cf\u30c3\u30b7\u30e5 \u30c6\u30fc\u30d6\u30eb\u578b\u3001\u30ab\u30b9\u30bf\u30e0\u578b\u306a\u3069\u3001\u3055\u307e\u3056\u307e\u306a\u30c7\u30fc\u30bf\u578b\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059. \u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u306e\u30c7\u30fc\u30bf\u578b\u3092\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u57fa\u672c\u30c7\u30fc\u30bf\u578b<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001\u6570\u5024\u3001\u6587\u5b57\u5217\u3001\u30d6\u30fc\u30eb\u5024\u3001\u65e5\u4ed8\u3068\u6642\u523b\u306a\u3069\u3001\u4e00\u822c\u7684\u306a\u57fa\u672c\u30c7\u30fc\u30bf\u578b\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u4f8b:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6570\u5024\u578b: \u6574\u6570\u3001\u6d6e\u52d5\u5c0f\u6570\u70b9\u306a\u3069\u3002<\/li>\n\n\n\n<li>\u6587\u5b57\u5217\u578b: \u4e00\u822c\u7684\u306a\u6587\u5b57\u5217\u3001HTML \u6587\u5b57\u5217\u3001XML \u6587\u5b57\u5217\u306a\u3069\u3067\u3059\u3002<\/li>\n\n\n\n<li>\u30d6\u30fc\u30eb\u578b: true \u3068 false \u306e 2 \u3064\u306e\u5024\u306e\u307f\u3002<\/li>\n\n\n\n<li>\u65e5\u4ed8\u3068\u6642\u523b\u306e\u30bf\u30a4\u30d7: \u65e5\u4ed8\u3068\u6642\u523b\u3092\u8868\u3059\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u3001\u66f8\u5f0f\u8a2d\u5b9a\u3068\u8a08\u7b97\u304c\u53ef\u80fd\u3067\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u30bf\u30a4\u30d7<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001\u30ea\u30b9\u30c8\u3001\u914d\u5217\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306a\u3069\u3092\u542b\u3080\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 \u30bf\u30a4\u30d7\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3001\u540c\u3058\u30bf\u30a4\u30d7\u306e\u30c7\u30fc\u30bf \u30bb\u30c3\u30c8\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30ea\u30b9\u30c8 \u30bf\u30a4\u30d7: &lt;#list&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u30c8\u30e9\u30d0\u30fc\u30b9\u304a\u3088\u3073\u51e6\u7406\u3067\u304d\u308b\u4e00\u9023\u306e\u30c7\u30fc\u30bf\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u914d\u5217\u578b: \u30ea\u30b9\u30c8\u578b\u306b\u4f3c\u3066\u3044\u307e\u3059\u304c\u3001Java \u914d\u5217\u578b\u3067\u3059\u3002<\/li>\n\n\n\n<li>\u30bb\u30c3\u30c8\u306e\u7a2e\u985e: \u4ea4\u5dee\u3001\u548c\u3001\u5dee\u306a\u3069\u306e\u64cd\u4f5c\u3092\u5b9f\u884c\u3067\u304d\u308b\u4e00\u610f\u306e\u30c7\u30fc\u30bf\u306e\u30bb\u30c3\u30c8\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30cf\u30c3\u30b7\u30e5 \u30c6\u30fc\u30d6\u30eb \u30bf\u30a4\u30d7<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001\u30ad\u30fc\u3068\u5024\u306e\u30da\u30a2\u306e\u30c7\u30fc\u30bf\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306e\u30cf\u30c3\u30b7\u30e5 \u30c6\u30fc\u30d6\u30eb \u30bf\u30a4\u30d7\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30cf\u30c3\u30b7\u30e5 \u30c6\u30fc\u30d6\u30eb \u30bf\u30a4\u30d7: \u30ad\u30fc\u3068\u5024\u306e\u30da\u30a2 \u30c7\u30fc\u30bf\u306e\u30bb\u30c3\u30c8\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u3001&lt;#list&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u30c8\u30e9\u30d0\u30fc\u30b9\u304a\u3088\u3073\u51e6\u7406\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u30ab\u30b9\u30bf\u30e0\u30bf\u30a4\u30d7<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3001JavaMap \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3001\u30ab\u30b9\u30bf\u30e0 Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306a\u3069\u3092\u542b\u3080\u30ab\u30b9\u30bf\u30e0 \u30bf\u30a4\u30d7\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8: \u4e00\u9023\u306e\u5c5e\u6027\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u3001\u30c9\u30c3\u30c8\u8868\u8a18\u3092\u4f7f\u7528\u3057\u3066\u5c5e\u6027\u5024\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>JavaMap \u30aa\u30d6\u30b8\u30a7\u30af\u30c8: \u30ad\u30fc\u3068\u5024\u306e\u30da\u30a2 \u30c7\u30fc\u30bf\u306e\u30bb\u30c3\u30c8\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306f &lt;#list&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u8d70\u67fb\u304a\u3088\u3073\u51e6\u7406\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30ab\u30b9\u30bf\u30e0 Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8: \u30ab\u30b9\u30bf\u30e0 Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u306f\u3001\u3055\u307e\u3056\u307e\u306a\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30e1\u30bd\u30c3\u30c9\u3092\u542b\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u8907\u96d1\u306a\u30c7\u30fc\u30bf\u69cb\u9020\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>FreeMarker \u30c7\u30fc\u30bf\u578b\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u6b63\u3057\u304f\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u306b\u306f\u3001\u30c7\u30fc\u30bf\u306e\u7279\u6027\u3068\u7528\u9014\u306b\u5fdc\u3058\u3066\u3001\u30c7\u30fc\u30bf\u578b\u306e\u9078\u629e\u3092\u8003\u616e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u578b\u304c\u7570\u306a\u308c\u3070\u64cd\u4f5c\u3084\u51e6\u7406\u3082\u7570\u306a\u308b\u305f\u3081\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u9078\u629e\u3057\u3066\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30ab\u30b9\u30bf\u30e0\u578b\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u6b63\u3057\u304f\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u306b\u306f\u3001Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u578b\u3068\u69cb\u9020\u304c\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u8981\u4ef6\u3068\u4e00\u81f4\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u306e\u30c7\u30fc\u30bf\u578b\u306f\u3001FreeMarker \u3092\u4f7f\u7528\u3057\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u3053\u308c\u3089\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u306e\u307f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3068\u30c7\u30fc\u30bf\u8868\u793a\u304c\u3088\u308a\u9069\u5207\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u30c7\u30fc\u30bf\u578b\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u30c7\u30fc\u30bf\u306e\u578b\u3001\u69cb\u9020\u3001\u304a\u3088\u3073\u6574\u5408\u6027\u306b\u6ce8\u610f\u3092\u6255\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3089\u3059\u3079\u3066\u306b\u3064\u3044\u3066\u3001FreeMarker \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b5\u30f3\u30d7\u30eb \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u53c2\u7167\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\u4f8b\u3092\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u304c\u3069\u306e\u3088\u3046\u306b\u4f7f\u7528\u3055\u308c\u308b\u304b\u3092\u8aac\u660e\u3059\u308b\u305f\u3081\u306b\u3001\u5177\u4f53\u7684\u306a\u4f8b\u3092\u6319\u3052\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u540d\u524d\u3001\u5e74\u9f62\u3001\u4f4f\u6240\u306e 3 \u3064\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u542b\u3080 JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8 User \u304c\u3042\u308b\u3068\u3057\u307e\u3059\u3002\u3053\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u7528\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u307e\u305a\u3001Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067 User \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306b\u914d\u7f6e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>User user = new User(\"John\", 30, \"New York\");\nMap&lt;String, Object&gt; dataModel = new HashMap&lt;&gt;();\ndataModel.put(\"user\", user);\n<\/code><\/pre>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u306f\u3001${} \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066 JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u53c2\u7167\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">css\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Name: ${user.name}\nAge: ${user.age}\nAddress: ${user.address}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306b\u3057\u3066\u3001\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u305f\u3081\u306b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3068\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3059\u3068\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u60c5\u5831\u3092\u6b63\u3057\u304f\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u52a0\u3048\u3066\u3001\u6b21\u306e\u3088\u3046\u306a\u4ed6\u306e\u30bf\u30a4\u30d7\u306e\u30c7\u30fc\u30bf\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>List&lt;String&gt; fruits = new ArrayList&lt;&gt;();\nfruits.add(\"apple\");\nfruits.add(\"banana\");\nfruits.add(\"orange\");\n\nMap&lt;String, Object&gt; dataModel = new HashMap&lt;&gt;();\ndataModel.put(\"fruits\", fruits);\n<\/code><\/pre>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u306f\u3001&lt;#list&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 \u30bf\u30a4\u30d7\u306e\u30c7\u30fc\u30bf\u3092\u30c8\u30e9\u30d0\u30fc\u30b9\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>&lt;#list fruits as fruit&gt;\n    ${fruit}\n&lt;\/#list&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306b\u3057\u3066\u3001\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u305f\u3081\u306b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3068\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3059\u3068\u3001\u30d5\u30eb\u30fc\u30c4 \u30ea\u30b9\u30c8\u3092\u6b63\u3057\u304f\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u5b9f\u969b\u306e\u4f7f\u7528\u3067\u306f\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u3068\u30c7\u30fc\u30bf\u69cb\u9020\u306b\u5f93\u3063\u3066\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u9069\u5207\u306a\u30c7\u30fc\u30bf\u578b\u3068\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u9078\u629e\u3067\u304d\u307e\u3059\u3002\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u6b63\u3057\u304f\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u306b\u306f\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306e\u30c7\u30fc\u30bf\u578b\u3068\u30c7\u30fc\u30bf\u69cb\u9020\u304c\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u8981\u4ef6\u3068\u4e00\u81f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker \u3068 Java \u7d71\u5408 Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8 \u30a2\u30af\u30bb\u30b9\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306f Java \u30d9\u30fc\u30b9\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30a8\u30f3\u30b8\u30f3\u3067\u3042\u308b\u305f\u3081\u3001Java \u3068\u7dca\u5bc6\u306b\u7d71\u5408\u3055\u308c\u3066\u304a\u308a\u3001Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3084\u30c7\u30fc\u30bf\u306b\u7c21\u5358\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002\u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u3068 Java \u306e\u7d71\u5408\u306e\u65b9\u6cd5\u3092\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u307e\u305a\u3001Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067 FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306b\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u30d1\u30b9\u306e\u8a2d\u5b9a\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u306e\u30a8\u30f3\u30b3\u30fc\u30c9\u65b9\u6cd5\u306e\u8a2d\u5b9a\u306a\u3069\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);\ncfg.setDirectoryForTemplateLoading(new File(\"\/path\/to\/templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u30c7\u30fc\u30bf\u3092\u6e21\u3059<\/li>\n<\/ol>\n\n\n\n<p>Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u305f\u3081\u306b\u30c7\u30fc\u30bf\u3092 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Map&lt;String, Object&gt; data = new HashMap&lt;&gt;();\ndata.put(\"name\", \"John\");\ndata.put(\"age\", 30);\n\nTemplate temp = cfg.getTemplate(\"example.ftl\");\nWriter out = new OutputStreamWriter(System.out);\ntemp.process(data, out);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30c7\u30fc\u30bf\u306f Map \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u683c\u7d0d\u3055\u308c\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306e\u305f\u3081\u306b FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3055\u308c\u3001\u6a19\u6e96\u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0\u306b\u51fa\u529b\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3078\u306e\u30a2\u30af\u30bb\u30b9<\/li>\n<\/ol>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u306f\u3001${} \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u3001Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30e1\u30bd\u30c3\u30c9\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>Name: ${user.name}\nAge: ${user.getAge()}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8 \u30e6\u30fc\u30b6\u30fc\u306e name \u30d7\u30ed\u30d1\u30c6\u30a3\u3068 getAge() \u30e1\u30bd\u30c3\u30c9\u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u304d\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3064\u307e\u308a\u3001\u305d\u308c\u3089\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30e1\u30bd\u30c3\u30c9\u306f public \u307e\u305f\u306f protected \u30a2\u30af\u30bb\u30b9 \u30ec\u30d9\u30eb\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5185\u306e Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u5834\u5408\u3001\u30c9\u30c3\u30c8\u8868\u8a18\u3092\u4f7f\u7528\u3057\u3066\u305d\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30e1\u30bd\u30c3\u30c9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>FreeMarker \u306f\u3001JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3001JavaMap \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3001\u30ab\u30b9\u30bf\u30e0 Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306a\u3069\u3001\u3055\u307e\u3056\u307e\u306a\u30bf\u30a4\u30d7\u306e Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u3068 Java \u306e\u7d71\u5408\u306f\u975e\u5e38\u306b\u7dca\u5bc6\u3067\u3042\u308a\u3001Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u30c7\u30fc\u30bf\u306b\u7c21\u5358\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u304d\u306f\u3001\u305d\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30e1\u30bd\u30c3\u30c9\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u305d\u3046\u3057\u306a\u3044\u3068\u3001\u30a2\u30af\u30bb\u30b9\u6a29\u306e\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker \u3068 Java \u7d71\u5408\u306e Java \u30e1\u30bd\u30c3\u30c9\u547c\u3073\u51fa\u3057\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u3092 Java \u3068\u7d71\u5408\u3059\u308b\u3068\u3001Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3060\u3051\u3067\u306a\u304f\u3001Java \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u64cd\u4f5c\u3092\u5bb9\u6613\u306b\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u3068 Java \u306e\u7d71\u5408\u306e\u65b9\u6cd5\u3092\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u307e\u305a\u3001Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067 FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306b\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u30d1\u30b9\u306e\u8a2d\u5b9a\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u306e\u30a8\u30f3\u30b3\u30fc\u30c9\u65b9\u6cd5\u306e\u8a2d\u5b9a\u306a\u3069\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);\ncfg.setDirectoryForTemplateLoading(new File(\"\/path\/to\/templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>Java \u30e1\u30bd\u30c3\u30c9\u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u6e21\u3059<\/li>\n<\/ol>\n\n\n\n<p>Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u3001Java \u30e1\u30bd\u30c3\u30c9\u3092 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>class MathUtil {\n    public static int add(int a, int b) {\n        return a + b;\n    }\n}\n\nMap&lt;String, Object&gt; data = new HashMap&lt;&gt;();\ndata.put(\"math\", new MathUtil());\n\nTemplate temp = cfg.getTemplate(\"example.ftl\");\nWriter out = new OutputStreamWriter(System.out);\ntemp.process(data, out);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u9759\u7684\u30e1\u30bd\u30c3\u30c9 add() \u3092\u5b9a\u7fa9\u3057\u3001\u305d\u308c\u3092\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306b\u914d\u7f6e\u3057\u3066\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067 Java \u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3059<\/li>\n<\/ol>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u306f\u3001${} \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066 Java \u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>Result: ${math.add(2, 3)}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001MathUtil \u30af\u30e9\u30b9\u306e\u9759\u7684\u30e1\u30bd\u30c3\u30c9 add() \u304c\u547c\u3073\u51fa\u3055\u308c\u30012 \u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc 2 \u3068 3 \u304c\u6e21\u3055\u308c\u3001\u7d50\u679c 5 \u304c\u51fa\u529b\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>Java \u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3059\u3068\u304d\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Java \u30e1\u30bd\u30c3\u30c9\u306f\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3064\u307e\u308a\u3001\u305d\u306e\u30a2\u30af\u30bb\u30b9 \u30ec\u30d9\u30eb\u306f public \u307e\u305f\u306f protected \u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>FreeMarker \u306f\u3001\u7279\u5b9a\u306e\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u9078\u629e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b Java \u30af\u30e9\u30b9\u306e\u9759\u7684\u30e1\u30bd\u30c3\u30c9\u3068\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9 \u30e1\u30bd\u30c3\u30c9\u306e\u547c\u3073\u51fa\u3057\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067 Java \u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3059\u3068\u304d\u306f\u3001\u30c9\u30c3\u30c8\u3068\u62ec\u5f27\u3092\u4f7f\u7528\u3057\u3066\u30e1\u30bd\u30c3\u30c9\u306e\u540d\u524d\u3068\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059 (\u4f8b: object.methodName(arg1, arg2))\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u3068 Java \u306e\u7d71\u5408\u306f\u975e\u5e38\u306b\u7dca\u5bc6\u3067\u3042\u308a\u3001\u3088\u308a\u8907\u96d1\u306a\u64cd\u4f5c\u306e\u305f\u3081\u306b Java \u30e1\u30bd\u30c3\u30c9\u3092\u7c21\u5358\u306b\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002Java \u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3059\u3068\u304d\u306f\u3001\u30e1\u30bd\u30c3\u30c9\u304c\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u305d\u3046\u3057\u306a\u3044\u3068\u3001\u30a2\u30af\u30bb\u30b9\u6a29\u306e\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker \u3068 Java \u306e\u7d71\u5408 JavaBeans \u306e\u7d71\u5408\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u3068 Java \u3092\u7d71\u5408\u3059\u308b\u3068\u3001\u3088\u308a\u8907\u96d1\u306a\u64cd\u4f5c\u306e\u305f\u3081\u306b JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u7c21\u5358\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u64cd\u4f5c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u4ee5\u4e0b\u3067\u306f\u3001FreeMarker \u3068 Java \u304c\u3069\u306e\u3088\u3046\u306b JavaBeans \u3092\u7d71\u5408\u3059\u308b\u304b\u3092\u8a73\u3057\u304f\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u307e\u305a\u3001Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067 FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306b\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u30d1\u30b9\u306e\u8a2d\u5b9a\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u306e\u30a8\u30f3\u30b3\u30fc\u30c9\u65b9\u6cd5\u306e\u8a2d\u5b9a\u306a\u3069\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);\ncfg.setDirectoryForTemplateLoading(new File(\"\/path\/to\/templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u6e21\u3059<\/li>\n<\/ol>\n\n\n\n<p>Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u3001JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>User user = new User(\"John\", 30);\nMap&lt;String, Object&gt; data = new HashMap&lt;&gt;();\ndata.put(\"user\", user);\n\nTemplate temp = cfg.getTemplate(\"example.ftl\");\nWriter out = new OutputStreamWriter(System.out);\ntemp.process(data, out);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8 \u30e6\u30fc\u30b6\u30fc\u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u306e\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306b\u5165\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5185\u306e JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u306f\u3001${} \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066 JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b<code>Name: ${user.name}\nAge: ${user.age}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8 user \u306e name \u5c5e\u6027\u3068 age \u5c5e\u6027\u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u304d\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3064\u307e\u308a\u3001\u305d\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u306f get \u30e1\u30bd\u30c3\u30c9\u3068 set \u30e1\u30bd\u30c3\u30c9\u304c\u5fc5\u8981\u3067\u3059\u3002<\/li>\n\n\n\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5185\u306e JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u5834\u5408\u3001\u30c9\u30c3\u30c8\u8868\u8a18\u3092\u4f7f\u7528\u3057\u3066\u305d\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059 (\u4f8b: object.propertyName)\u3002<\/li>\n\n\n\n<li>FreeMarker \u306f\u3001JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30e1\u30bd\u30c3\u30c9\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3001\u304a\u3088\u3073 JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30cd\u30b9\u30c8\u3055\u308c\u305f\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30e1\u30bd\u30c3\u30c9\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001FreeMarker \u3068 Java \u306e\u7d71\u5408\u306f\u975e\u5e38\u306b\u7dca\u5bc6\u3067\u3042\u308a\u3001JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u7c21\u5358\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u64cd\u4f5c\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002JavaBean \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u304d\u306f\u3001\u305d\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30e1\u30bd\u30c3\u30c9\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u305d\u3046\u3057\u306a\u3044\u3068\u3001\u30a2\u30af\u30bb\u30b9\u6a29\u306e\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044 FreeMarker\u5b9f\u8df5\u4e8b\u4f8b \u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u751f\u6210<\/p>\n\n\n\n<p>FreeMarker \u306f\u3001\u3055\u307e\u3056\u307e\u306a\u30bf\u30a4\u30d7\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u7c21\u5358\u306b\u751f\u6210\u3067\u304d\u308b\u5f37\u529b\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30a8\u30f3\u30b8\u30f3\u3067\u3059\u3002FreeMarker \u3092\u4f7f\u7528\u3057\u3066 Web \u30b5\u30a4\u30c8 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3059\u308b\u5b9f\u969b\u306e\u30b1\u30fc\u30b9\u3092\u7d39\u4ecb\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u307e\u305a\u3001Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067 FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306b\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u30d1\u30b9\u306e\u8a2d\u5b9a\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u306e\u30a8\u30f3\u30b3\u30fc\u30c9\u65b9\u6cd5\u306e\u8a2d\u5b9a\u306a\u3069\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);\ncfg.setDirectoryForTemplateLoading(new File(\"\/path\/to\/templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u6e96\u5099\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>Web \u30b5\u30a4\u30c8 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3059\u308b\u524d\u306b\u3001Web \u30b5\u30a4\u30c8\u306e\u30bf\u30a4\u30c8\u30eb\u3001\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3 \u30d0\u30fc\u3001\u30cb\u30e5\u30fc\u30b9 \u30ea\u30b9\u30c8\u306a\u3069\u3092\u542b\u3080\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u6e96\u5099\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002Map \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30c7\u30fc\u30bf\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Map&lt;String, Object&gt; data = new HashMap&lt;&gt;();\ndata.put(\"title\", \"My Website\");\ndata.put(\"nav\", new String[] {\"Home\", \"About\", \"News\", \"Contact\"});\ndata.put(\"news\", newsList);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001Web \u30b5\u30a4\u30c8\u306e\u30bf\u30a4\u30c8\u30eb\u3001\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3 \u30d0\u30fc\u3001\u304a\u3088\u3073\u30cb\u30e5\u30fc\u30b9 \u30ea\u30b9\u30c8\u3092\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306b\u5165\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304f<\/li>\n<\/ol>\n\n\n\n<p>\u6b21\u306b\u3001Web \u30b5\u30a4\u30c8 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u6b21\u306e\u5185\u5bb9\u3067 index.ftl \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">html\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;title&gt;${title}&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;nav&gt;\n        &lt;ul&gt;\n            &lt;#list nav as item&gt;\n                &lt;li&gt;${item}&lt;\/li&gt;\n            &lt;\/#list&gt;\n        &lt;\/ul&gt;\n    &lt;\/nav&gt;\n\n    &lt;div id=\"news\"&gt;\n        &lt;#list news as item&gt;\n            &lt;div class=\"item\"&gt;\n                &lt;h2&gt;${item.title}&lt;\/h2&gt;\n                &lt;p&gt;${item.content}&lt;\/p&gt;\n            &lt;\/div&gt;\n        &lt;\/#list&gt;\n    &lt;\/div&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001${} \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u5185\u306e\u30c7\u30fc\u30bf\u3092\u53c2\u7167\u3057\u3001Web \u30b5\u30a4\u30c8\u306e\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3 \u30d0\u30fc\u3068\u30cb\u30e5\u30fc\u30b9 \u30ea\u30b9\u30c8\u3092\u751f\u6210\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u30b5\u30a4\u30c8 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u6700\u5f8c\u306b\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3068\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3092 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3057\u3066\u3001Web \u30b5\u30a4\u30c8 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Template temp = cfg.getTemplate(\"index.ftl\");\nWriter out = new FileWriter(new File(\"\/path\/to\/output.html\"));\ntemp.process(data, out);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3068\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u304c FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3055\u308c\u3001Web \u30b5\u30a4\u30c8 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u304c\u751f\u6210\u3055\u308c\u3001output.html \u30d5\u30a1\u30a4\u30eb\u306b\u51fa\u529b\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u306b\u3088\u308a\u3001FreeMarker \u3092\u4f7f\u7528\u3057\u3066\u3001Web \u30b5\u30a4\u30c8\u306e\u30bf\u30a4\u30c8\u30eb\u3001\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3 \u30d0\u30fc\u3001\u30cb\u30e5\u30fc\u30b9 \u30ea\u30b9\u30c8\u306a\u3069\u3092\u542b\u3080 Web \u30b5\u30a4\u30c8 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3067\u304d\u307e\u3059\u3002\u5b9f\u969b\u306e\u4f7f\u7528\u3067\u306f\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u3068\u30c7\u30fc\u30bf\u69cb\u9020\u306b\u5f93\u3063\u3066\u9069\u5207\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3068\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u8a18\u8ff0\u3057\u3001\u3055\u307e\u3056\u307e\u306a\u7a2e\u985e\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u5b9f\u8df5\u4e8b\u4f8b\u30e1\u30fc\u30eb\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u751f\u6210\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306f\u3001\u96fb\u5b50\u30e1\u30fc\u30eb \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u542b\u3080\u3055\u307e\u3056\u307e\u306a\u7a2e\u985e\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u7c21\u5358\u306b\u751f\u6210\u3067\u304d\u307e\u3059\u3002FreeMarker \u3092\u4f7f\u7528\u3057\u3066\u96fb\u5b50\u30e1\u30fc\u30eb \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3059\u308b\u5b9f\u969b\u306e\u30b1\u30fc\u30b9\u3092\u7d39\u4ecb\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u307e\u305a\u3001Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067 FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306b\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u30d1\u30b9\u306e\u8a2d\u5b9a\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u306e\u30a8\u30f3\u30b3\u30fc\u30c9\u65b9\u6cd5\u306e\u8a2d\u5b9a\u306a\u3069\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);\ncfg.setDirectoryForTemplateLoading(new File(\"\/path\/to\/templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u6e96\u5099\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u30e1\u30fc\u30eb \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3059\u308b\u524d\u306b\u3001\u30e1\u30fc\u30eb\u306e\u4ef6\u540d\u3001\u9001\u4fe1\u8005\u3001\u53d7\u4fe1\u8005\u3001\u30e1\u30fc\u30eb\u306e\u5185\u5bb9\u306a\u3069\u3092\u542b\u3080\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u6e96\u5099\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002Map \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30c7\u30fc\u30bf\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Map&lt;String, Object&gt; data = new HashMap&lt;&gt;();\ndata.put(\"subject\", \"Welcome to My Website\");\ndata.put(\"from\", \"sender@example.com\");\ndata.put(\"to\", \"receiver@example.com\");\ndata.put(\"content\", \"Dear ${name}, welcome to my website.\");\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u96fb\u5b50\u30e1\u30fc\u30eb\u306e\u4ef6\u540d\u3001\u9001\u4fe1\u8005\u3001\u53d7\u4fe1\u8005\u3001\u304a\u3088\u3073\u96fb\u5b50\u30e1\u30fc\u30eb\u306e\u5185\u5bb9\u3092\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306b\u5165\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304f<\/li>\n<\/ol>\n\n\n\n<p>\u6b21\u306b\u3001\u96fb\u5b50\u30e1\u30fc\u30eb \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u6b21\u306e\u5185\u5bb9\u3067 email.ftl \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">html\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;html&gt;\n&lt;head&gt;\n    &lt;title&gt;${subject}&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;p&gt;From: ${from}&lt;\/p&gt;\n    &lt;p&gt;To: ${to}&lt;\/p&gt;\n    &lt;p&gt;${content}&lt;\/p&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001${} \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u5185\u306e\u30c7\u30fc\u30bf\u3092\u53c2\u7167\u3057\u3001\u96fb\u5b50\u30e1\u30fc\u30eb\u306e\u9001\u4fe1\u8005\u3001\u53d7\u4fe1\u8005\u3001\u304a\u3088\u3073\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u30e1\u30fc\u30eb \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u751f\u6210<\/li>\n<\/ol>\n\n\n\n<p>\u6700\u5f8c\u306b\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3068\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3092 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3057\u3066\u3001\u96fb\u5b50\u30e1\u30fc\u30eb \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Template temp = cfg.getTemplate(\"email.ftl\");\nWriter out = new StringWriter();\ntemp.process(data, out);\n\nString emailContent = out.toString();\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3068\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u304c FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3055\u308c\u3001\u96fb\u5b50\u30e1\u30fc\u30eb \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u304c\u751f\u6210\u3055\u308c\u3001\u6587\u5b57\u5217\u306b\u51fa\u529b\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u306b\u3088\u308a\u3001FreeMarker \u3092\u4f7f\u7528\u3057\u3066\u3001\u96fb\u5b50\u30e1\u30fc\u30eb\u306e\u4ef6\u540d\u3001\u9001\u4fe1\u8005\u3001\u53d7\u4fe1\u8005\u3001\u304a\u3088\u3073\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u542b\u3080\u96fb\u5b50\u30e1\u30fc\u30eb \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3067\u304d\u307e\u3059\u3002\u5b9f\u969b\u306e\u4f7f\u7528\u3067\u306f\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u3068\u30c7\u30fc\u30bf\u69cb\u9020\u306b\u5f93\u3063\u3066\u9069\u5207\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3068\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u8a18\u8ff0\u3057\u3001\u3055\u307e\u3056\u307e\u306a\u7a2e\u985e\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u751f\u6210\u3067\u304d\u307e\u3059\u3002\u6700\u5f8c\u306b\u3001\u96fb\u5b50\u30e1\u30fc\u30eb \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306f\u3001\u96fb\u5b50\u30e1\u30fc\u30eb\u9001\u4fe1\u306a\u3069\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3 \u30b7\u30ca\u30ea\u30aa\u3067\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u5b9f\u8df5\u4e8b\u4f8b\u306ePDF\u30ec\u30dd\u30fc\u30c8\u751f\u6210\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306f\u3001PDF \u30ec\u30dd\u30fc\u30c8\u3092\u542b\u3080\u3055\u307e\u3056\u307e\u306a\u30bf\u30a4\u30d7\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u7c21\u5358\u306b\u751f\u6210\u3067\u304d\u307e\u3059\u3002FreeMarker \u3092\u4f7f\u7528\u3057\u3066 PDF \u30ec\u30dd\u30fc\u30c8\u3092\u751f\u6210\u3059\u308b\u5b9f\u969b\u306e\u30b1\u30fc\u30b9\u3092\u4ee5\u4e0b\u306b\u7d39\u4ecb\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u307e\u305a\u3001Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067 FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306b\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u30d1\u30b9\u306e\u8a2d\u5b9a\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u306e\u30a8\u30f3\u30b3\u30fc\u30c9\u65b9\u6cd5\u306e\u8a2d\u5b9a\u306a\u3069\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);\ncfg.setDirectoryForTemplateLoading(new File(\"\/path\/to\/templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u6e96\u5099\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>PDF \u30ec\u30dd\u30fc\u30c8\u3092\u751f\u6210\u3059\u308b\u524d\u306b\u3001\u30c6\u30fc\u30d6\u30eb \u30d8\u30c3\u30c0\u30fc\u3001\u30c6\u30fc\u30d6\u30eb \u30c7\u30fc\u30bf\u306a\u3069\u3092\u542b\u3080\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u6e96\u5099\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002Map \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30c7\u30fc\u30bf\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Map&lt;String, Object&gt; data = new HashMap&lt;&gt;();\ndata.put(\"title\", \"Sales Report\");\ndata.put(\"header\", new String[] {\"Product Name\", \"Quantity\", \"Price\", \"Total Price\"});\ndata.put(\"data\", dataList);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30ec\u30dd\u30fc\u30c8 \u30bf\u30a4\u30c8\u30eb\u3001\u30c6\u30fc\u30d6\u30eb \u30d8\u30c3\u30c0\u30fc\u3001\u304a\u3088\u3073\u30c6\u30fc\u30d6\u30eb \u30c7\u30fc\u30bf\u304c\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u306b\u914d\u7f6e\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304f<\/li>\n<\/ol>\n\n\n\n<p>\u6b21\u306b\u3001PDF \u30ec\u30dd\u30fc\u30c8\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001FreeMarker \u306e\u7d44\u307f\u8fbc\u307f PDF \u751f\u6210\u30c4\u30fc\u30eb\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">html\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;html&gt;\n&lt;head&gt;\n    &lt;title&gt;${title}&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;table&gt;\n        &lt;thead&gt;\n            &lt;tr&gt;\n                &lt;#list header as col&gt;\n                    &lt;th&gt;${col}&lt;\/th&gt;\n                &lt;\/#list&gt;\n            &lt;\/tr&gt;\n        &lt;\/thead&gt;\n        &lt;tbody&gt;\n            &lt;#list data as row&gt;\n                &lt;tr&gt;\n                    &lt;td&gt;${row.name}&lt;\/td&gt;\n                    &lt;td&gt;${row.quantity}&lt;\/td&gt;\n                    &lt;td&gt;${row.price}&lt;\/td&gt;\n                    &lt;td&gt;${row.total}&lt;\/td&gt;\n                &lt;\/tr&gt;\n            &lt;\/#list&gt;\n        &lt;\/tbody&gt;\n    &lt;\/table&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001${} \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u5185\u306e\u30c7\u30fc\u30bf\u3092\u53c2\u7167\u3057\u3001PDF \u30ec\u30dd\u30fc\u30c8\u306e\u30d8\u30c3\u30c0\u30fc\u3068\u30c6\u30fc\u30d6\u30eb \u30c7\u30fc\u30bf\u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>PDF \u30ec\u30dd\u30fc\u30c8\u306e\u751f\u6210<\/li>\n<\/ol>\n\n\n\n<p>\u6700\u5f8c\u306b\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3068\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3092 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3057\u3001FreeMarker \u306e\u7d44\u307f\u8fbc\u307f PDF \u751f\u6210\u30c4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066 PDF \u30ec\u30dd\u30fc\u30c8\u3092\u751f\u6210\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Template temp = cfg.getTemplate(\"report.ftl\");\nByteArrayOutputStream baos = new ByteArrayOutputStream();\nWriter out = new OutputStreamWriter(baos);\ntemp.process(data, out);\n\nPdfWriter writer = new PdfWriter(new FileOutputStream(\"output.pdf\"));\nPdfDocument pdf = new PdfDocument(writer);\nConverterProperties converterProperties = new ConverterProperties();\nHtmlConverter.convertToPdf(new ByteArrayInputStream(baos.toByteArray()), pdf, converterProperties);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3068\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u304c FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u6e21\u3055\u308c\u3001\u30d0\u30a4\u30c8\u914d\u5217\u306b\u51fa\u529b\u3055\u308c\u307e\u3059\u3002\u6b21\u306b\u3001FreeMarker \u306e\u7d44\u307f\u8fbc\u307f PDF \u751f\u6210\u30c4\u30fc\u30eb \u30af\u30e9\u30b9\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d0\u30a4\u30c8\u914d\u5217\u304c PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u306b\u3088\u308a\u3001FreeMarker \u3092\u4f7f\u7528\u3057\u3066\u3001\u30c6\u30fc\u30d6\u30eb \u30d8\u30c3\u30c0\u30fc\u3068\u30c6\u30fc\u30d6\u30eb \u30c7\u30fc\u30bf\u3092\u542b\u3080 PDF \u30ec\u30dd\u30fc\u30c8\u3092\u751f\u6210\u3067\u304d\u307e\u3059\u3002\u5b9f\u969b\u306e\u4f7f\u7528\u3067\u306f\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u3068\u30c7\u30fc\u30bf\u69cb\u9020\u306b\u5f93\u3063\u3066\u9069\u5207\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u3068\u30c7\u30fc\u30bf \u30e2\u30c7\u30eb\u3092\u4f5c\u6210\u3057\u3001\u3055\u307e\u3056\u307e\u306a\u7a2e\u985e\u306e\u30ec\u30dd\u30fc\u30c8\u3092\u751f\u6210\u3067\u304d\u307e\u3059\u3002\u6700\u5f8c\u306b\u3001\u30ec\u30dd\u30fc\u30c8\u306f\u3001\u30c7\u30fc\u30bf\u306e\u7d71\u8a08\u3084\u5206\u6790\u306a\u3069\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3 \u30b7\u30ca\u30ea\u30aa\u3067\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker \u306e\u9ad8\u5ea6\u306a\u30c8\u30d4\u30c3\u30af\u306e\u30ab\u30b9\u30bf\u30e0 \u30b3\u30de\u30f3\u30c9\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306b\u306f\u3001\u307b\u3068\u3093\u3069\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u8981\u4ef6\u3092\u6e80\u305f\u3059\u3053\u3068\u304c\u3067\u304d\u308b\u3001if\u3001list \u306a\u3069\u306e\u591a\u304f\u306e\u7d44\u307f\u8fbc\u307f\u547d\u4ee4\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u7279\u6b8a\u306a\u30b1\u30fc\u30b9\u3067\u306f\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u305f\u3081\u306b\u30ab\u30b9\u30bf\u30e0 \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u304c\u5fc5\u8981\u306b\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002FreeMarker\u3067\u547d\u4ee4\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3059\u308b\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>TemplateDirectiveModel \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9f\u88c5\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u307e\u305a\u3001\u30ab\u30b9\u30bf\u30e0 \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u304c\u5b9f\u88c5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u30e1\u30bd\u30c3\u30c9\u3092\u542b\u3080 TemplateDirectiveModel \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9f\u88c5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>public class MyDirective implements TemplateDirectiveModel {\n\n    @Override\n    public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {\n        \/\/ TODO: \u81ea\u5b9a\u4e49\u6307\u4ee4\u7684\u6267\u884c\u903b\u8f91\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001TemplateDirectiveModel \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9f\u88c5\u3057\u3001MyDirective \u3068\u3044\u3046\u540d\u524d\u306e\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30ab\u30b9\u30bf\u30e0 \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3092\u767b\u9332\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u6b21\u306b\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u4f7f\u7528\u3059\u308b\u30ab\u30b9\u30bf\u30e0 \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3092 FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b\u767b\u9332\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u4f8b\u3048\u3070\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);\ncfg.setDirectoryForTemplateLoading(new File(\"\/path\/to\/templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n\nMap&lt;String, TemplateDirectiveModel&gt; directives = new HashMap&lt;&gt;();\ndirectives.put(\"myDirective\", new MyDirective());\ncfg.setSharedVariable(\"directives\", directives);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30ab\u30b9\u30bf\u30e0\u547d\u4ee4 MyDirective \u304c FreeMarker \u30a8\u30f3\u30b8\u30f3\u306b myDirective \u3068\u3044\u3046\u540d\u524d\u3067\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u306e\u30ab\u30b9\u30bf\u30e0 \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u306e\u4f7f\u7528<\/li>\n<\/ol>\n\n\n\n<p>\u6700\u5f8c\u306b\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u30ab\u30b9\u30bf\u30e0 \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">html\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;@myDirective arg1=\"value1\" arg2=\"value2\"&gt;\n    &lt;!-- \u81ea\u5b9a\u4e49\u6307\u4ee4\u7684\u5185\u5bb9 --&gt;\n&lt;\/@myDirective&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001myDirective \u30b3\u30de\u30f3\u30c9\u304c\u4f7f\u7528\u3055\u308c\u30012 \u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc arg1 \u304a\u3088\u3073 arg2 \u304c\u6e21\u3055\u308c\u307e\u3059\u3002\u30ab\u30b9\u30bf\u30e0 \u30b3\u30de\u30f3\u30c9\u306e\u5177\u4f53\u7684\u306a\u5185\u5bb9\u306f\u3001\u30b3\u30de\u30f3\u30c9\u672c\u4f53\u306b\u8a18\u8ff0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u306b\u3088\u308a\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u306b\u5408\u308f\u305b\u3066 FreeMarker \u306e\u6307\u793a\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u307e\u3059\u3002\u30ab\u30b9\u30bf\u30e0\u547d\u4ee4\u306f\u3001FreeMarker \u306e\u6a5f\u80fd\u3092\u62e1\u5f35\u3057\u3066\u3001\u3088\u308a\u67d4\u8edf\u3067\u5f37\u529b\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u51e6\u7406\u6a5f\u80fd\u3092\u63d0\u4f9b\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u9ad8\u5ea6\u306a\u30c8\u30d4\u30c3\u30af\u69cb\u6210\u3068\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306f\u9ad8\u6027\u80fd\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30a8\u30f3\u30b8\u30f3\u3067\u3059\u304c\u3001\u5b9f\u969b\u306e\u4f7f\u7528\u3067\u306f\u3001\u69cb\u6210\u3068\u8abf\u6574\u304c\u5fc5\u8981\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u554f\u984c\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002FreeMarker\u306e\u8a2d\u5b9a\u3068\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u3092\u7d39\u4ecb\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30ad\u30e3\u30c3\u30b7\u30e5\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u3055\u308c\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u3057\u3066\u3001\u4f7f\u7528\u3059\u308b\u305f\u3073\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3092\u56de\u907f\u3067\u304d\u307e\u3059\u3002Configuration \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e setTemplateUpdateDelay \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u66f4\u65b0\u9593\u9694\u3092\u8a2d\u5b9a\u3057\u3001setCacheStorage \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30ad\u30e3\u30c3\u30b7\u30e5 \u30dd\u30ea\u30b7\u30fc\u3092\u8a2d\u5b9a\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);\ncfg.setDirectoryForTemplateLoading(new File(\"\/path\/to\/templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n\ncfg.setTemplateUpdateDelayMilliseconds(1000);\ncfg.setCacheStorage(new SoftCacheStorage());\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u66f4\u65b0\u9593\u9694\u306f 1 \u79d2\u306b\u8a2d\u5b9a\u3055\u308c\u3001\u30ad\u30e3\u30c3\u30b7\u30e5 \u30dd\u30ea\u30b7\u30fc\u306f\u30bd\u30d5\u30c8\u53c2\u7167\u30ad\u30e3\u30c3\u30b7\u30e5\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>JIT \u30b3\u30f3\u30d1\u30a4\u30eb\u3092\u6709\u52b9\u306b\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092 Java \u30d0\u30a4\u30c8\u30b3\u30fc\u30c9\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u5b9f\u884c\u901f\u5ea6\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u308b JIT (Just-In-Time) \u30b3\u30f3\u30d1\u30a4\u30eb\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002JIT \u30b3\u30f3\u30d1\u30a4\u30eb\u306f\u3001Configuration \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e setJitCompiler \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u6709\u52b9\u306b\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);\ncfg.setDirectoryForTemplateLoading(new File(\"\/path\/to\/templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n\ncfg.setJitCompiler(true);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001JIT \u30b3\u30f3\u30d1\u30a4\u30eb\u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30ab\u30b9\u30bf\u30e0\u30af\u30e9\u30b9\u30ed\u30fc\u30c0\u30fc<\/li>\n<\/ol>\n\n\n\n<p>FreeMarker \u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u3068\u304d\u306b Java \u30af\u30e9\u30b9\u3092\u52d5\u7684\u306b\u751f\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30af\u30e9\u30b9 \u30ed\u30fc\u30c0\u30fc\u306b\u306f\u3001\u30af\u30e9\u30b9\u3092\u30ed\u30fc\u30c9\u3067\u304d\u306a\u3044\u3001\u30af\u30e9\u30b9\u306e\u91cd\u8907\u306a\u3069\u306e\u554f\u984c\u304c\u3042\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u554f\u984c\u306f\u3001\u30af\u30e9\u30b9 \u30ed\u30fc\u30c0\u30fc\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3059\u308b\u3053\u3068\u3067\u89e3\u6c7a\u3067\u304d\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);\ncfg.setDirectoryForTemplateLoading(new File(\"\/path\/to\/templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n\nClassLoader cl = new CustomClassLoader();\ncfg.setClassLoader(cl);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30af\u30e9\u30b9 \u30ed\u30fc\u30c0\u30fc CustomClassLoader \u304c\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3055\u308c\u3001FreeMarker \u30a8\u30f3\u30b8\u30f3\u306e\u30af\u30e9\u30b9 \u30ed\u30fc\u30c0\u30fc\u3068\u3057\u3066\u8a2d\u5b9a\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u69cb\u6210\u3068\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306b\u3088\u308a\u3001FreeMarker \u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u5b89\u5b9a\u6027\u3092\u5411\u4e0a\u3055\u305b\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u51e6\u7406\u52b9\u7387\u3092\u6700\u9069\u5316\u3057\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5168\u4f53\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u5b9f\u969b\u306e\u4f7f\u7528\u3067\u306f\u3001\u7279\u5b9a\u306e\u72b6\u6cc1\u3084\u30cb\u30fc\u30ba\u306b\u5fdc\u3058\u3066\u5408\u7406\u7684\u306a\u69cb\u6210\u3068\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker \u306e\u9ad8\u5ea6\u306a\u30c8\u30d4\u30c3\u30af\u306e\u56fd\u969b\u5316\u30b5\u30dd\u30fc\u30c8\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306f\u56fd\u969b\u5316 (i18n) \u30b5\u30dd\u30fc\u30c8\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u3055\u307e\u3056\u307e\u306a\u8a00\u8a9e\u74b0\u5883\u3067\u4f7f\u7528\u3059\u308b\u305f\u3081\u306b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5185\u306e\u30c6\u30ad\u30b9\u30c8\u60c5\u5831\u3092\u30ed\u30fc\u30ab\u30e9\u30a4\u30ba\u3067\u304d\u307e\u3059\u3002FreeMarker \u306e\u56fd\u969b\u5316\u30b5\u30dd\u30fc\u30c8\u3092\u7d39\u4ecb\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u3092\u6e96\u5099\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u307e\u305a\u3001\u3055\u307e\u3056\u307e\u306a\u8a00\u8a9e\u74b0\u5883\u306e\u30c6\u30ad\u30b9\u30c8\u60c5\u5831\u3092\u542b\u3080\u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u3092\u6e96\u5099\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u901a\u5e38\u3001\u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u306f\u30af\u30e9\u30b9\u30d1\u30b9\u306b\u683c\u7d0d\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>messages.properties\nmessages_en.properties\nmessages_zh_CN.properties\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u8a00\u8a9e\u3067\u3042\u308b\u82f1\u8a9e\u3068\u7c21\u4f53\u5b57\u4e2d\u56fd\u8a9e\u306e\u30c6\u30ad\u30b9\u30c8\u60c5\u5831\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u6b21\u306b\u3001Java \u30d7\u30ed\u30b0\u30e9\u30e0\u3067 FreeMarker \u30a8\u30f3\u30b8\u30f3\u3092\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306b\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u30d1\u30b9\u306e\u8a2d\u5b9a\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30d5\u30a1\u30a4\u30eb\u306e\u30a8\u30f3\u30b3\u30fc\u30c9\u65b9\u6cd5\u306e\u8a2d\u5b9a\u306a\u3069\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">java\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);\ncfg.setDirectoryForTemplateLoading(new File(\"\/path\/to\/templates\"));\ncfg.setDefaultEncoding(\"UTF-8\");\n\ncfg.setLocale(Locale.US);\ncfg.setNumberFormat(\"0.##\");\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u65e2\u5b9a\u306e\u8a00\u8a9e\u306f\u30a2\u30e1\u30ea\u30ab\u82f1\u8a9e\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u304a\u308a\u3001\u6570\u5024\u5f62\u5f0f\u306f\u5c0f\u6570\u70b9\u4ee5\u4e0b 2 \u6841\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u56fd\u969b\u5316\u3055\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u3092\u4f7f\u7528\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u6700\u5f8c\u306b\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u56fd\u969b\u5316\u3055\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">html\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>&lt;h1&gt;${msg(\"welcome\")}&lt;\/h1&gt;\n&lt;p&gt;${msg(\"hello\", \"John\")}&lt;\/p&gt;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001msg \u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u56fd\u969b\u5316\u3055\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u3092\u53c2\u7167\u3057\u3066\u3044\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30ed\u30b1\u30fc\u30eb\u3067\u306f\u3001msg \u95a2\u6570\u306f messages.properties \u306e\u30c6\u30ad\u30b9\u30c8\u60c5\u5831\u3092\u8aad\u307f\u53d6\u308a\u307e\u3059\u304c\u3001\u4ed6\u306e\u30ed\u30b1\u30fc\u30eb\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u5bfe\u5fdc\u3059\u308b\u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u53d6\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u69cb\u6210\u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb<\/li>\n<\/ol>\n\n\n\n<p>\u4ed6\u306e\u30ed\u30b1\u30fc\u30eb\u3067\u30c6\u30ad\u30b9\u30c8\u60c5\u5831\u3092\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u5bfe\u5fdc\u3059\u308b\u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u306b\u30c6\u30ad\u30b9\u30c8\u60c5\u5831\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002\u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<code>messages_es.properties\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u30b9\u30da\u30a4\u30f3\u8a9e\u74b0\u5883\u306e\u30c6\u30ad\u30b9\u30c8\u60c5\u5831\u304c\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u306b\u3088\u308a\u3001FreeMarker \u3067\u56fd\u969b\u5316\u30b5\u30dd\u30fc\u30c8\u3092\u5b9f\u88c5\u3057\u3001\u3055\u307e\u3056\u307e\u306a\u8a00\u8a9e\u74b0\u5883\u3067\u4f7f\u7528\u3059\u308b\u305f\u3081\u306b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5185\u306e\u30c6\u30ad\u30b9\u30c8\u60c5\u5831\u3092\u30ed\u30fc\u30ab\u30e9\u30a4\u30ba\u3067\u304d\u307e\u3059\u3002\u5b9f\u969b\u306e\u4f7f\u7528\u3067\u306f\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u3068\u8a00\u8a9e\u74b0\u5883\u306b\u5fdc\u3058\u3066\u3001\u5bfe\u5fdc\u3059\u308b\u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u3068\u30c6\u30ad\u30b9\u30c8\u60c5\u5831\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker \u30ea\u30bd\u30fc\u30b9\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3001\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u3055\u3089\u306b\u8abf\u3079\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>FreeMarker \u306f\u3001\u3055\u307e\u3056\u307e\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u51e6\u7406\u306e\u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u8c4a\u5bcc\u306a\u69cb\u6587\u3068 API \u3092\u63d0\u4f9b\u3059\u308b\u3001\u5f37\u529b\u3067\u4f7f\u3044\u3084\u3059\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u30a8\u30f3\u30b8\u30f3\u3067\u3059\u3002FreeMarker \u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u5b66\u7fd2\u3057\u305f\u3044\u5834\u5408\u306f\u3001\u6b21\u306e\u30ea\u30bd\u30fc\u30b9\u3068\u305d\u306e\u4ed6\u306e\u5b66\u7fd2\u8cc7\u6599\u3092\u53c2\u7167\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>FreeMarker \u306e\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8: FreeMarker \u306f\u3001\u57fa\u672c\u7684\u306a\u69cb\u6587\u3001\u9ad8\u5ea6\u306a\u6a5f\u80fd\u3001API \u306a\u3069\u3092\u542b\u3080\u5b8c\u5168\u306a\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<a href=\"https:\/\/freemarker.apache.org\/%EF%BC%89%E4%B8%8B%E8%BD%BD%E6%9C%80%E6%96%B0%E7%9A%84%E6%96%87%E6%A1%A3%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BB%A5%E5%9C%A8%E7%BA%BF%E6%B5%8F%E8%A7%88%E3%80%82\">\u6700\u65b0\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f\u3001<\/a>\u516c\u5f0f Web \u30b5\u30a4\u30c8 (https:\/\/freemarker.apache.org\/) \u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u304b\u3001\u30aa\u30f3\u30e9\u30a4\u30f3\u3067\u95b2\u89a7\u3067\u304d\u307e\u3059\u3002<a href=\"https:\/\/freemarker.apache.org\/%EF%BC%89%E4%B8%8B%E8%BD%BD%E6%9C%80%E6%96%B0%E7%9A%84%E6%96%87%E6%A1%A3%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BB%A5%E5%9C%A8%E7%BA%BF%E6%B5%8F%E8%A7%88%E3%80%82\"><\/a><\/li>\n\n\n\n<li>FreeMarker \u30b5\u30f3\u30d7\u30eb \u30b3\u30fc\u30c9: FreeMarker \u306f\u3001\u958b\u767a\u8005\u304c FreeMarker \u306e\u4f7f\u7528\u6cd5\u3068\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3 \u30b7\u30ca\u30ea\u30aa\u3092\u3059\u3070\u3084\u304f\u958b\u59cb\u3057\u3066\u7406\u89e3\u3059\u308b\u306e\u306b\u5f79\u7acb\u3064\u3044\u304f\u3064\u304b\u306e\u30b5\u30f3\u30d7\u30eb \u30b3\u30fc\u30c9\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u306f\u516c\u5f0f\u30b5\u30a4\u30c8\uff08<a href=\"https:\/\/freemarker.apache.org\/examples.html%EF%BC%89%E4%B8%8B%E8%BD%BD%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81%E3%80%82\">https:\/\/freemarker.apache.org\/examples.html\uff09\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059\u3002<\/a><\/li>\n\n\n\n<li>FreeMarker \u30aa\u30f3\u30e9\u30a4\u30f3 \u30c4\u30fc\u30eb: FreeMarker \u306f\u3001\u30d6\u30e9\u30a6\u30b6\u30fc\u3067 FreeMarker \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u7de8\u96c6\u304a\u3088\u3073\u30d7\u30ec\u30d3\u30e5\u30fc\u3059\u308b\u305f\u3081\u306e\u30aa\u30f3\u30e9\u30a4\u30f3 \u30c4\u30fc\u30eb\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u958b\u767a\u8005\u304c\u5b9f\u9a13\u304a\u3088\u3073\u30c7\u30d0\u30c3\u30b0\u3059\u308b\u306e\u306b\u4fbf\u5229\u3067\u3059\u3002\u516c\u5f0f Web \u30b5\u30a4\u30c8 (&nbsp;<a href=\"https:\/\/try.freemarker.apache.org\/%EF%BC%89%E4%BD%BF%E7%94%A8%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7%E3%80%82\">https:\/\/try.freemarker.apache.org\/) \u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u3001\u30aa\u30f3\u30e9\u30a4\u30f3 \u30c4\u30fc\u30eb\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/a><\/li>\n\n\n\n<li>FreeMarker \u30b3\u30df\u30e5\u30cb\u30c6\u30a3: FreeMarker \u306b\u306f\u3001\u958b\u767a\u8005\u304c\u652f\u63f4\u3092\u6c42\u3081\u305f\u308a\u3001\u7d4c\u9a13\u3092\u5171\u6709\u3057\u305f\u308a\u3001\u6280\u8853\u3092\u4ea4\u63db\u3057\u305f\u308a\u3067\u304d\u308b\u6d3b\u767a\u306a\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u304c\u3042\u308a\u307e\u3059\u3002<a href=\"https:\/\/freemarker.apache.org\/community.html%EF%BC%89%E4%BA%86%E8%A7%A3%E6%9B%B4%E5%A4%9A%E7%A4%BE%E5%8C%BA%E4%BF%A1%E6%81%AF%E3%80%82\">\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u306e\u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001<\/a>\u516c\u5f0f Web \u30b5\u30a4\u30c8 (https:\/\/freemarker.apache.org\/community.html) \u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u304f\u3060\u3055\u3044\u3002<a href=\"https:\/\/freemarker.apache.org\/community.html%EF%BC%89%E4%BA%86%E8%A7%A3%E6%9B%B4%E5%A4%9A%E7%A4%BE%E5%8C%BA%E4%BF%A1%E6%81%AF%E3%80%82\"><\/a><\/li>\n\n\n\n<li>FreeMarker \u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3068\u66f8\u7c4d: FreeMarker \u306b\u306f\u591a\u304f\u306e\u512a\u308c\u305f\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3068\u66f8\u7c4d\u304c\u3042\u308a\u3001\u958b\u767a\u8005\u304c FreeMarker \u306e\u4f7f\u7528\u65b9\u6cd5\u3068\u30b9\u30ad\u30eb\u3092\u7fd2\u5f97\u3059\u308b\u306e\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001\u300cFreeMarker Template Engine: Practical and Advanced\u300d\u3068\u3044\u3046\u672c\u306f\u3001FreeMarker \u3092\u7dcf\u5408\u7684\u306b\u7d39\u4ecb\u3057\u305f\u672c\u3067\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30ea\u30bd\u30fc\u30b9\u3068\u5b66\u7fd2\u6559\u6750\u3092\u901a\u3058\u3066\u3001\u958b\u767a\u8005\u306f FreeMarker \u3092\u6df1\u304f\u5b66\u3073\u3001\u305d\u306e\u4f7f\u7528\u65b9\u6cd5\u3068\u30b9\u30ad\u30eb\u3092\u7fd2\u5f97\u3057\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u51e6\u7406\u52b9\u7387\u3068\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5168\u4f53\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/edu.ujhb.org\/?p=1752\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=96&amp;q=75\" alt=\"gun tei\"\/><\/figure>\n\n\n\n<p>FreeMarker\u306e\u30ea\u30bd\u30fc\u30b9\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3001\u3055\u3089\u306b\u52c9\u5f37\u3057\u3066\u304f\u3060\u3055\u3044 \u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb \u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3068Q&amp;A<\/p>\n\n\n\n<p>FreeMarker \u306b\u306f\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3068 Q&amp;A \u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u304c\u3042\u308a\u3001\u958b\u767a\u8005\u304c\u3055\u307e\u3056\u307e\u306a\u554f\u984c\u3092\u89e3\u6c7a\u3057\u3001\u30c6\u30af\u30ce\u30ed\u30b8\u3092\u4f1d\u9054\u3059\u308b\u306e\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002FreeMarker \u306e\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3068 Q&amp;A \u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u7d39\u4ecb\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>FreeMarker \u516c\u5f0f\u30e1\u30fc\u30ea\u30f3\u30b0 \u30ea\u30b9\u30c8: FreeMarker \u516c\u5f0f\u30e1\u30fc\u30ea\u30f3\u30b0 \u30ea\u30b9\u30c8\u306f\u3001\u958b\u767a\u8005\u304c\u8cea\u554f\u3057\u305f\u308a\u3001\u8cea\u554f\u306b\u7b54\u3048\u305f\u308a\u3001\u7d4c\u9a13\u3092\u4ea4\u63db\u3057\u305f\u308a\u3001\u6280\u8853\u3092\u5171\u6709\u3057\u305f\u308a\u3067\u304d\u308b\u30aa\u30fc\u30d7\u30f3 \u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 \u30b0\u30eb\u30fc\u30d7\u3067\u3059\u3002<a href=\"https:\/\/freemarker.apache.org\/mailing-lists.html%EF%BC%89%E4%BA%86%E8%A7%A3%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%E3%80%82\">\u8a73\u7d30\u306b\u3064\u3044\u3066<\/a>\u306f\u3001\u516c\u5f0f Web \u30b5\u30a4\u30c8 (https:\/\/freemarker.apache.org\/mailing-lists.html) \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<a href=\"https:\/\/freemarker.apache.org\/mailing-lists.html%EF%BC%89%E4%BA%86%E8%A7%A3%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%E3%80%82\"><\/a><\/li>\n\n\n\n<li>\u30b9\u30bf\u30c3\u30af \u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc: \u30b9\u30bf\u30c3\u30af \u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u306f\u3088\u304f\u77e5\u3089\u308c\u305f Q&amp;A \u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u3042\u308a\u3001FreeMarker \u306b\u95a2\u3059\u308b\u591a\u304f\u306e Q&amp;A \u3082\u3042\u308a\u307e\u3059\u3002\u95a2\u9023\u3059\u308b\u8cea\u554f\u306fStack Overflow ( https:\/\/stackoverflow.com\/questions\/tagged\/freemarker ) \u3067<a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/freemarker%EF%BC%89%E6%90%9C%E7%B4%A2%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98%E3%80%82\">\u691c\u7d22\u3067\u304d\u307e\u3059\u3002<\/a><\/li>\n\n\n\n<li>Github \u306e\u554f\u984c: FreeMarker \u306e\u30bd\u30fc\u30b9 \u30b3\u30fc\u30c9\u306f Github \u3067\u30db\u30b9\u30c8\u3055\u308c\u3066\u304a\u308a\u3001\u95a2\u9023\u3059\u308b\u554f\u984c\u306e\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 \u30dc\u30fc\u30c9\u3082\u3042\u308a\u307e\u3059\u3002\u554f\u984c\u306f\u3001 Github \u306e\u554f\u984c (https:\/\/github.com\/apache\/freemarker\/issues) \u3067\u898b\u3064\u3051\u3066\u9001\u4fe1\u3067\u304d\u307e\u3059<a href=\"https:\/\/github.com\/apache\/freemarker\/issues%EF%BC%89%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%92%8C%E6%8F%90%E4%BA%A4%E9%97%AE%E9%A2%98%E3%80%82\">\u3002<\/a><\/li>\n\n\n\n<li>FreeMarker \u30b3\u30df\u30e5\u30cb\u30c6\u30a3: FreeMarker \u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u306f\u3001\u958b\u767a\u8005\u304c\u6280\u8853\u3092\u4ea4\u63db\u3057\u3001\u7d4c\u9a13\u3092\u5171\u6709\u3057\u3001\u554f\u984c\u3092\u89e3\u6c7a\u3067\u304d\u308b\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u30bd\u30fc\u30b7\u30e3\u30eb \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3067\u3059\u3002<a href=\"https:\/\/gitter.im\/freemarker\/freemarker%EF%BC%89%E4%BA%86%E8%A7%A3%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%E3%80%82\">\u8a73\u7d30\u306b\u3064\u3044\u3066<\/a>\u306f\u3001FreeMarker \u30b3\u30df\u30e5\u30cb\u30c6\u30a3 (https:\/\/gitter.im\/freemarker\/freemarker) \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<a href=\"https:\/\/gitter.im\/freemarker\/freemarker%EF%BC%89%E4%BA%86%E8%A7%A3%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%E3%80%82\"><\/a><\/li>\n<\/ol>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3068 Q&amp;A \u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u901a\u3058\u3066\u3001\u958b\u767a\u8005\u306f\u8c4a\u5bcc\u306a\u6280\u8853\u30ea\u30bd\u30fc\u30b9\u3068\u30d8\u30eb\u30d7\u3092\u53d6\u5f97\u3057\u3001\u3055\u307e\u3056\u307e\u306a\u554f\u984c\u3092\u89e3\u6c7a\u3057\u3001\u6280\u8853\u3092\u4ea4\u63db\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u5b9f\u969b\u306e\u4f7f\u7528\u3067\u306f\u3001\u7279\u5b9a\u306e\u72b6\u6cc1\u3084\u30cb\u30fc\u30ba\u306b\u5fdc\u3058\u3066\u3001\u9069\u5207\u306a\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3068\u65b9\u6cd5\u3092\u9078\u629e\u3057\u3066\u901a\u4fe1\u304a\u3088\u3073\u4ea4\u63db\u3067\u304d\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30f3\u30c6\u30f3\u30c4\u306b\u5408\u308f\u305b\u3066\u30a2\u30ec\u30f3\u30b8\u3057\u3066\u3082\u3089\u3048\u307e\u3059 &hellip; <\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_mi_skip_tracking":false,"footnotes":""},"categories":[23],"tags":[],"class_list":["post-2132","post","type-post","status-publish","format-standard","hentry","category-material"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts\/2132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2132"}],"version-history":[{"count":1,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts\/2132\/revisions"}],"predecessor-version":[{"id":2133,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts\/2132\/revisions\/2133"}],"wp:attachment":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}