{"id":491,"date":"2015-04-13T17:23:24","date_gmt":"2015-04-13T08:23:24","guid":{"rendered":"http:\/\/www.ois-yokohama.co.jp\/oisblog\/?p=491"},"modified":"2022-09-27T17:40:11","modified_gmt":"2022-09-27T08:40:11","slug":"spring-4-1-%e3%82%92%e8%a9%a6%e3%81%99","status":"publish","type":"post","link":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/archives\/491","title":{"rendered":"Spring 4.1 \u3092\u8a66\u3059"},"content":{"rendered":"<div class=\"veu_autoEyeCatchBox\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"500\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2014\/10\/bus0014-001-1024x683.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2014\/10\/bus0014-001-1024x683.jpg 1024w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2014\/10\/bus0014-001-300x200.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2014\/10\/bus0014-001-768x512.jpg 768w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/div>\n<p><span style=\"color: #666666;\">\u3053\u3093\u306b\u3061\u308f\u3001\u732b\u6d3e\u306e\u307b\u3052PG\u3067\u3059\u3002\u4eca\u56de\u306f Spring4 \u3092\u8a66\u3057\u3066\u307f\u307e\u3059<\/span>\u3002<\/p>\n<h2>\uff11\u3001eclipse\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p>\u4ee5\u4e0b\u3092\u5404\u30b5\u30a4\u30c8\u3092\u53c2\u8003\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3002<\/p>\n<h4>\u30fb<a title=\"eclipse\" href=\"http:\/\/mergedoc.sourceforge.jp\/index.html#\/pleiades.html\" target=\"_blank\" rel=\"noopener noreferrer\">eclipse<\/a><\/h4>\n<p>4.4\u3092\u4f7f\u7528<\/p>\n<p>&nbsp;<\/p>\n<h2>\uff12\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f5c\u6210<\/h2>\n<p>eclipse \u3092\u8d77\u52d5\u3057\u3001\u65b0\u898f\u4f5c\u6210\uff1e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3001maven\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u9078\u629e\u3002<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000001.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-520 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000001-300x188.jpg\" alt=\"WS000001\" width=\"300\" height=\"188\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000001-300x188.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000001-768x480.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000001-1024x640.jpg 1024w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000001.jpg 1280w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000002.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-521 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000002-300x156.jpg\" alt=\"WS000002\" width=\"300\" height=\"156\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000002-300x156.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000002-768x399.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000002.jpg 963w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n\u6b21\u3078<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000003.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-522 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000003-300x188.jpg\" alt=\"WS000003\" width=\"300\" height=\"188\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000003-300x188.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000003-768x482.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000003.jpg 963w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nmaven-archetype-webapp \u3092\u9078\u629e<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000004.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-523 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000004-300x227.jpg\" alt=\"WS000004\" width=\"300\" height=\"227\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000004-300x227.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000004-768x582.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000004.jpg 798w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n\u4ee5\u4e0b\u3092\u5165\u529b\u3057\u3001\u5b8c\u4e86\u62bc\u4e0b<br \/>\n\u30b0\u30eb\u30fc\u30d7ID\uff1ajp.co.ois.hoge<br \/>\n\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8ID\uff1asandbox<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000005.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-524 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000005-300x227.jpg\" alt=\"WS000005\" width=\"300\" height=\"227\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000005-300x227.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000005-768x582.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000005.jpg 798w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u306a\u305c\u304b\u30d5\u30a9\u30eb\u30c0\u304c\u6b20\u640d\u3057\u3066\u3044\u308b\u306e\u3067\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3059\u308b\u3002<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000006.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-525 size-medium alignnone\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000006-300x220.jpg\" alt=\"\" width=\"300\" height=\"220\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000006-300x220.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000006-768x562.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000006-1024x749.jpg 1024w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000006.jpg 1093w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n\u4ee5\u4e0b\u306e\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3059\u308b\u3002<br \/>\nsrc\/main\/java<br \/>\nsrc\/test\/java<\/p>\n<h2>\uff13\u3001pom.xml\u306e\u4fee\u6b63<\/h2>\n<p>\u4ee5\u4e0b\u3092pom.xml\u306b\u8ffd\u52a0\u3002<\/p>\n<blockquote>\n<pre class=\"lang:java decode:true\">&lt;properties&gt;\r\n &lt;spring.version&gt;4.1.4.RELEASE&lt;\/spring.version&gt;\r\n&lt;\/properties&gt;\r\n<\/pre>\n<pre class=\"lang:java decode:true\">&lt;dependency&gt;\r\n &lt;groupId&gt;log4j&lt;\/groupId&gt;\r\n &lt;artifactId&gt;log4j&lt;\/artifactId&gt;\r\n &lt;version&gt;1.2.17&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n&lt;dependency&gt;\r\n&lt;groupId&gt;javax.validation&lt;\/groupId&gt;\r\n &lt;artifactId&gt;validation-api&lt;\/artifactId&gt;\r\n &lt;version&gt;1.1.0.Final&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n&lt;dependency&gt;\r\n &lt;groupId&gt;org.hibernate&lt;\/groupId&gt;\r\n &lt;artifactId&gt;hibernate-validator&lt;\/artifactId&gt;\r\n &lt;version&gt;5.2.0.Alpha1&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n&lt;!-- javax.servlet --&gt;\r\n&lt;dependency&gt;\r\n &lt;groupId&gt;javax.servlet&lt;\/groupId&gt;\r\n &lt;artifactId&gt;javax.servlet-api&lt;\/artifactId&gt;\r\n &lt;version&gt;3.1.0&lt;\/version&gt;\r\n &lt;scope&gt;provided&lt;\/scope&gt;\r\n&lt;\/dependency&gt;\r\n&lt;dependency&gt;\r\n &lt;groupId&gt;javax.servlet.jsp&lt;\/groupId&gt;\r\n &lt;artifactId&gt;javax.servlet.jsp-api&lt;\/artifactId&gt;\r\n &lt;version&gt;2.3.1&lt;\/version&gt;\r\n &lt;scope&gt;provided&lt;\/scope&gt;\r\n&lt;\/dependency&gt;\r\n&lt;dependency&gt;\r\n &lt;groupId&gt;javax.servlet&lt;\/groupId&gt;\r\n &lt;artifactId&gt;jstl&lt;\/artifactId&gt;\r\n &lt;version&gt;1.2&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n&lt;!-- Spring Framework --&gt;\r\n&lt;dependency&gt;\r\n &lt;groupId&gt;org.springframework&lt;\/groupId&gt;\r\n &lt;artifactId&gt;spring-core&lt;\/artifactId&gt;\r\n &lt;version&gt;${spring.version}&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n&lt;dependency&gt;\r\n &lt;groupId&gt;org.springframework&lt;\/groupId&gt;\r\n &lt;artifactId&gt;spring-web&lt;\/artifactId&gt;\r\n &lt;version&gt;${spring.version}&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n&lt;dependency&gt;\r\n &lt;groupId&gt;org.springframework&lt;\/groupId&gt;\r\n &lt;artifactId&gt;spring-webmvc&lt;\/artifactId&gt;\r\n &lt;version&gt;${spring.version}&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n&lt;dependency&gt;\r\n &lt;groupId&gt;org.springframework&lt;\/groupId&gt;\r\n &lt;artifactId&gt;spring-jdbc&lt;\/artifactId&gt;\r\n &lt;version&gt;${spring.version}&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n&lt;dependency&gt;\r\n &lt;groupId&gt;org.springframework&lt;\/groupId&gt;\r\n &lt;artifactId&gt;spring-context-support&lt;\/artifactId&gt;\r\n &lt;version&gt;${spring.version}&lt;\/version&gt;\r\n&lt;\/dependency&gt;<\/pre>\n<\/blockquote>\n<p>&nbsp;<\/p>\n<h2>\uff14\u3001web.xml \u306e\u4fee\u6b63<\/h2>\n<p>WEB-INF\u306e\u4e0b\u306eweb.xml\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u4fee\u6b63\u3059\u308b\u3002<\/p>\n<blockquote>\n<pre class=\"lang:java decode:true\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;web-app xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n xmlns=\"http:\/\/xmlns.jcp.org\/xml\/ns\/javaee\" xmlns:jsp=\"http:\/\/java.sun.com\/xml\/ns\/javaee\/jsp\"\r\n xsi:schemaLocation=\"http:\/\/xmlns.jcp.org\/xml\/ns\/javaee http:\/\/xmlns.jcp.org\/xml\/ns\/javaee\/web-app_3_1.xsd\"\r\n version=\"3.1\"&gt;\r\n &lt;filter&gt;\r\n &lt;filter-name&gt;CharacterEncodingFilter&lt;\/filter-name&gt;\r\n &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;\/filter-class&gt;\r\n &lt;init-param&gt;\r\n &lt;param-name&gt;encoding&lt;\/param-name&gt;\r\n &lt;param-value&gt;utf-8&lt;\/param-value&gt;\r\n &lt;\/init-param&gt;\r\n &lt;init-param&gt;\r\n &lt;param-name&gt;forceEncoding&lt;\/param-name&gt;\r\n &lt;param-value&gt;true&lt;\/param-value&gt;\r\n &lt;\/init-param&gt;\r\n &lt;\/filter&gt;\r\n &lt;filter-mapping&gt;\r\n &lt;filter-name&gt;CharacterEncodingFilter&lt;\/filter-name&gt;\r\n &lt;url-pattern&gt;\/*&lt;\/url-pattern&gt;\r\n &lt;\/filter-mapping&gt;\r\n &lt;servlet&gt;\r\n &lt;servlet-name&gt;dispatcher&lt;\/servlet-name&gt;\r\n &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;\/servlet-class&gt;\r\n &lt;init-param&gt;\r\n &lt;param-name&gt;contextConfigLocation&lt;\/param-name&gt;\r\n &lt;param-value&gt;\/WEB-INF\/spring-context.xml&lt;\/param-value&gt;\r\n &lt;\/init-param&gt;\r\n &lt;\/servlet&gt;\r\n &lt;servlet-mapping&gt;\r\n &lt;servlet-name&gt;dispatcher&lt;\/servlet-name&gt;\r\n &lt;url-pattern&gt;\/&lt;\/url-pattern&gt;\r\n &lt;\/servlet-mapping&gt;\r\n&lt;\/web-app&gt;<\/pre>\n<\/blockquote>\n<p>&nbsp;<\/p>\n<h2>\uff15\u3001spring-context.xml \u306e\u4f5c\u6210<\/h2>\n<p>WEB-INF\u306e\u4e0b\u306bspring-context.xml\u3092\u4f5c\u6210\u3059\u308b\u3002<\/p>\n<blockquote>\n<pre class=\"lang:java decode:true\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;beans xmlns=\"http:\/\/www.springframework.org\/schema\/beans\"\r\n xmlns:context=\"http:\/\/www.springframework.org\/schema\/context\"\r\n xmlns:mvc=\"http:\/\/www.springframework.org\/schema\/mvc\"\r\n xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n xmlns:p=\"http:\/\/www.springframework.org\/schema\/p\"\r\n xmlns:tx =\"http:\/\/www.springframework.org\/schema\/tx\"\r\n xmlns:task=\"http:\/\/www.springframework.org\/schema\/task\"\r\n xsi:schemaLocation=\"\r\n http:\/\/www.springframework.org\/schema\/beans\r\n http:\/\/www.springframework.org\/schema\/beans\/spring-beans-4.1.xsd\r\n http:\/\/www.springframework.org\/schema\/context\r\n http:\/\/www.springframework.org\/schema\/context\/spring-context-4.1.xsd\r\n http:\/\/www.springframework.org\/schema\/mvc\r\n http:\/\/www.springframework.org\/schema\/mvc\/spring-mvc-4.1.xsd\"&gt;\r\n &lt;context:component-scan base-package=\"jp.co.ois.hoge.sandbox\" \/&gt;\r\n &lt;mvc:annotation-driven \/&gt;\r\n &lt;bean\r\n class=\"org.springframework.web.servlet.view.InternalResourceViewResolver\"&gt;\r\n &lt;property name=\"prefix\" value=\"\/WEB-INF\/views\/\" \/&gt;\r\n &lt;property name=\"suffix\" value=\".jsp\" \/&gt;\r\n &lt;\/bean&gt;\r\n &lt;mvc:resources mapping=\"\/resources\/**\" location=\"\/resources\/\" \/&gt;\r\n&lt;\/beans&gt;<\/pre>\n<\/blockquote>\n<p>&nbsp;<\/p>\n<h2>\uff16\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u306e\u4f5c\u6210<\/h2>\n<p>HogeController \u30af\u30e9\u30b9\u306e\u4f5c\u6210<\/p>\n<blockquote>\n<pre class=\"lang:java decode:true\">package jp.co.ois.hoge.sandbox;\r\nimport org.springframework.stereotype.Controller;\r\nimport org.springframework.web.bind.annotation.RequestMapping;\r\n@Controller\r\npublic class HogeController {\r\n @RequestMapping(\"\/hoge\")\r\n @ResponseBody\r\n public String hoge() {\r\n return \"hogehoge !\";\r\n }\r\n}<\/pre>\n<\/blockquote>\n<p>&nbsp;<\/p>\n<h2>\uff17\u3001\u52d5\u4f5c\u78ba\u8a8d<\/h2>\n<p>\u30e1\u30cb\u30e5\u30fc\u304b\u3089\u3001\u65b0\u898f\uff1e\u305d\u306e\u4ed6\u3001\u30b5\u30fc\u30d0\u30fc\u306e\u30b5\u30fc\u30d0\u30fc\u9078\u629e\u3001\u6b21\u3078<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000007.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-547 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000007-300x156.jpg\" alt=\"WS000007\" width=\"300\" height=\"156\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000007-300x156.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000007-768x399.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000007.jpg 963w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nApache\u306etomcat\u3092\u9078\u629e\uff08\u30d0\u30fc\u30b8\u30e7\u30f3\u306f\u597d\u304d\u306a\u306e\u3092\uff09<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000008.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-548 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000008-300x189.jpg\" alt=\"WS000008\" width=\"300\" height=\"189\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000008-300x189.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000008-768x483.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000008.jpg 963w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\ntomcat\u306e\u30d5\u30a9\u30eb\u30c0\u3092\u6307\u5b9a\u3057\u3001\u5b8c\u4e86\u62bc\u4e0b<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000009.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-549 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000009-300x189.jpg\" alt=\"WS000009\" width=\"300\" height=\"189\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000009-300x189.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000009-768x483.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000009.jpg 963w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nsandbox \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3001\u5b9f\u884c\uff1e\u30b5\u30fc\u30d0\u30fc\u3067\u5b9f\u884c\u3092\u9078\u629e\u3001\u6b21\u3078\u62bc\u4e0b\u3001\u5b8c\u4e86\u62bc\u4e0b\u3002<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000010.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-550 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000010-300x188.jpg\" alt=\"WS000010\" width=\"300\" height=\"188\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000010-300x188.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000010-768x480.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000010-1024x640.jpg 1024w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000010.jpg 1280w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000011.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-551 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000011-300x222.jpg\" alt=\"WS000011\" width=\"300\" height=\"222\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000011-300x222.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000011-768x569.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000011.jpg 963w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000012.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-552 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000012-300x222.jpg\" alt=\"WS000012\" width=\"300\" height=\"222\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000012-300x222.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000012-768x569.jpg 768w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000012.jpg 963w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\ntomcat\u304c\u8d77\u52d5\u3057\u305f\u3089\u3001\u307b\u3052\u3063\u3066\u307f\u308b\u3002<br \/>\n\u30d6\u30e9\u30a6\u30b6\u3067\u4ee5\u4e0b\u306b\u30a2\u30af\u30bb\u30b9<br \/>\nhttp:\/\/localhost:8080\/sandbox\/hoge<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000013.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-553 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000013-300x213.jpg\" alt=\"WS000013\" width=\"300\" height=\"213\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000013-300x213.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000013.jpg 702w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n\u307b\u3052\uff01\uff08good\uff09<\/p>\n<h2>8\u3001\u5165\u529b\u753b\u9762\u3092\u4f5c\u6210\u3057\u3066\u307f\u308b<\/h2>\n<p>\u5165\u529b\u5024\u306f\u540d\u524d\u3068\u30b3\u30e1\u30f3\u30c8\u306e\u4e8c\u3064\u3002\u540d\u524d\u306f\uff11\uff5e\uff11\uff10\u6587\u5b57\u3002\u30b3\u30e1\u30f3\u30c8\u306f\uff11\uff5e\uff19\uff19\uff19\u6587\u5b57\u3068\u3059\u308b\u3002<br \/>\nHogeController \u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u4fee\u6b63<\/p>\n<blockquote>\n<pre class=\"lang:java decode:true\">package jp.co.ois.hoge.sandbox;\r\nimport javax.validation.Valid;\r\nimport org.springframework.stereotype.Controller;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.validation.BindingResult;\r\nimport org.springframework.web.bind.annotation.ModelAttribute;\r\nimport org.springframework.web.bind.annotation.RequestMapping;\r\n@Controller\r\npublic class HogeController {\r\n @ModelAttribute(\"hogeForm\")\r\n public HogeForm createForm() {\r\n return new HogeForm();\r\n }\r\n @RequestMapping(\"\/hoge\")\r\n public String hoge(Model model) {\r\n return \"hoge\";\r\n }\r\n @RequestMapping(\"\/hogehoge\")\r\n public String hogehoge(@Valid HogeForm form, BindingResult result, Model model) {\r\n if (result.hasErrors()) {\r\n model.addAttribute(\"result\", \"error\");\r\n return \"hoge\";\r\n }\r\n model.addAttribute(\"result\", \"success\");\r\n return \"hoge\";\r\n }\r\n}<\/pre>\n<\/blockquote>\n<p>HogeForm \u3092\u4f5c\u6210<\/p>\n<blockquote>\n<pre class=\"lang:java decode:true\">package jp.co.ois.hoge.sandbox;\r\nimport javax.validation.constraints.Size;\r\npublic class HogeForm {\r\n @Size(min = 1, max = 10)\r\n String name = null;\r\n @Size(min = 1, max = 999)\r\n String comment = null;\r\n public String getName() {\r\n return name;\r\n }\r\n public void setName(String name) {\r\n this.name = name;\r\n }\r\n public String getComment() {\r\n return comment;\r\n }\r\n public void setComment(String comment) {\r\n this.comment = comment;\r\n }\r\n}<\/pre>\n<\/blockquote>\n<p>WEB-INF\/views\/hoge.jsp \u3092\u4f5c\u6210<\/p>\n<blockquote>\n<pre class=\"lang:java decode:true \">&lt;%@page contentType=\"text\/html; charset=utf-8\" %&gt;\r\n&lt;%@taglib uri=\"http:\/\/www.springframework.org\/tags\/form\" prefix=\"form\"%&gt;\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n &lt;title&gt;\u307b\u3052&lt;\/title&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n &lt;form:form modelAttribute=\"hogeForm\" servletRelativeAction=\"\/hogehoge\" method=\"POST\"&gt;\r\n &lt;h1&gt;\u307b\u3052&lt;\/h1&gt;\r\n &lt;br&gt;&lt;br&gt;\r\n \u540d\u524d\uff1a&lt;form:input path=\"name\" \/&gt;\r\n &lt;form:errors path=\"name\" \/&gt;&lt;br&gt;\r\n \u30b3\u30e1\u30f3\u30c8\uff1a&lt;form:input path=\"comment\" \/&gt;\r\n &lt;form:errors path=\"comment\" \/&gt;&lt;br&gt;\r\n &lt;hr&gt;\r\n &lt;input type=\"submit\" value=\"\u307b\u3052\"&gt;\r\n &lt;\/form:form&gt;\r\n ${result}&lt;br&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<\/blockquote>\n<p>\u52d5\u4f5c\u78ba\u8a8d\u3057\u3066\u307f\u308b\u3002<br \/>\nhttp:\/\/localhost:8080\/sandbox\/hoge<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000014.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-558 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000014-300x213.jpg\" alt=\"WS000014\" width=\"300\" height=\"213\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000014-300x213.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000014.jpg 702w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n\u4f55\u3082\u5165\u529b\u3057\u306a\u3044\u3067\u307b\u3052\u62bc\u4e0b\u3002<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000015.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-559 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000015-300x213.jpg\" alt=\"WS000015\" width=\"300\" height=\"213\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000015-300x213.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000015.jpg 702w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n\u540d\u524d\uff1a\u307b\u3052\u3001\u30b3\u30e1\u30f3\u30c8\uff1a\u307b\u3052\u307b\u3052\u3001\u307b\u3052\u62bc\u4e0b\u3002<br \/>\n<a href=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000016.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-560 size-medium\" src=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000016-300x213.jpg\" alt=\"WS000016\" width=\"300\" height=\"213\" srcset=\"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000016-300x213.jpg 300w, https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-content\/uploads\/2015\/04\/WS000016.jpg 702w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h2>9\u3001form\u30bf\u30b0\u306eaction\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u3064\u3044\u3066<\/h2>\n<p>spring4\u306b\u306a\u3063\u3066\u3001\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30d1\u30b9\u304c\u81ea\u52d5\u3067\u8a2d\u5b9a\u3055\u308c\u306a\u304f\u306a\u3063\u305f\u3002\u4ee3\u308f\u308a\u306b\u3001servletRelativeAction\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u8a2d\u5b9a\u3059\u308c\u3070\u5927\u4e08\u592b\u306a\u3088\u3046\u3060\u3002<br \/>\n\u203b\u6700\u521d ${pageContext.request.contextPath} \u3068\u3057\u3066\u3044\u305f\u304c\u3001\u3057\u3063\u304f\u308a\u3053\u306a\u3044\u306e\u3067\u3001FormTag \u306e\u30bd\u30fc\u30b9\u3092\u898b\u3066servletRelativeAction\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u63a2\u3057\u5f53\u3066\u305f\u3002<\/p>\n<p>\u4eca\u56de\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4e00\u5f0f\u306f\u4ee5\u4e0b\u306b\u7f6e\u304d\u307e\u3057\u305f\u3002<br \/>\nhttp:\/\/www.ois-yokohama.co.jp\/oisblog\/file\/sandbox.zip<\/p>\n<p>\u3068\u308a\u3042\u3048\u305a\u3001\u4eca\u56de\u306f\u3053\u3053\u307e\u3067\u3002\u6b21\u56de\u306fMyBatis\u3092\u4f7f\u3063\u3066DB\u3078\u306e\u4fdd\u5b58\u3092\u8a66\u3057\u3066\u307f\u308b\u4e88\u5b9a\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u3093\u306b\u3061\u308f\u3001\u732b\u6d3e\u306e\u307b\u3052PG\u3067\u3059\u3002\u4eca\u56de\u306f Spring4 \u3092\u8a66\u3057\u3066\u307f\u307e\u3059\u3002 \uff11\u3001eclipse\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u4ee5\u4e0b\u3092\u5404\u30b5\u30a4\u30c8\u3092\u53c2\u8003\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3002 \u30fbeclipse 4.4\u3092\u4f7f\u7528 &nbsp; \uff12\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f5c\u6210 ec [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":117,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"vkexunit_cta_each_option":"","footnotes":""},"categories":[6],"tags":[21,22,23,24],"class_list":["post-491","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineer","tag-action","tag-form","tag-servletrelativeaction","tag-spring"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-json\/wp\/v2\/posts\/491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-json\/wp\/v2\/comments?post=491"}],"version-history":[{"count":4,"href":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-json\/wp\/v2\/posts\/491\/revisions"}],"predecessor-version":[{"id":7922,"href":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-json\/wp\/v2\/posts\/491\/revisions\/7922"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-json\/wp\/v2\/media\/117"}],"wp:attachment":[{"href":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-json\/wp\/v2\/media?parent=491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-json\/wp\/v2\/categories?post=491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ois-yokohama.co.jp\/oisblog2018\/wp-json\/wp\/v2\/tags?post=491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}