{"id":333,"date":"2015-11-18T23:00:12","date_gmt":"2015-11-18T14:00:12","guid":{"rendered":"http:\/\/esoro.jp\/?p=333"},"modified":"2015-11-18T23:23:20","modified_gmt":"2015-11-18T14:23:20","slug":"jsf2%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%82%b3%e3%83%b3%e3%83%90%e3%83%bc%e3%82%bf%e3%81%a7%e3%83%87%e3%82%b3%e3%83%bc%e3%83%89%e3%81%97%e3%81%a4%e3%81%a4datatable%e3%81%ae%e8%83%8c%e6%99%af","status":"publish","type":"post","link":"https:\/\/esoro.jp\/?p=333","title":{"rendered":"JSF2\u30ab\u30b9\u30bf\u30e0\u30b3\u30f3\u30d0\u30fc\u30bf\u3067\u30c7\u30b3\u30fc\u30c9\u3057\u3064\u3064dataTable\u306e\u80cc\u666f\u3092\u5909\u3048\u308b"},"content":{"rendered":"<p>\u4eca\u4f5c\u3063\u3066\u3044\u308bWEB\u30a2\u30d7\u30ea\u3067\u3001\u753b\u9762\u306b\u4e00\u89a7\u3092\u8868\u793a\u3057\u3066\u3001\u4e00\u89a7\u8868\u793a\u5185\u306e\u9805\u76ee\u5024\u306b\u3088\u3063\u3066\u80cc\u666f\u8272\u3092\u5909\u3048\u305f\u3044\u3068\u3044\u3046\u8981\u4ef6\u304c\u3042\u308a\u307e\u3057\u305f\u3002<br \/>\n\u3067\u3001JSF2\u306e\u30ab\u30b9\u30bf\u30e0\u30b3\u30f3\u30d0\u30fc\u30bf\u3092\u4f7f\u3063\u3066\u3001\u30b3\u30fc\u30c9\u5024\u3092\u6587\u8a00\u306b\u30c7\u30b3\u30fc\u30c9\u3057\u3064\u3064\u3001\u88cf\u3067CSS\u30af\u30e9\u30b9\u3092\u5909\u3048\u308b\u3053\u3068\u3067\u80cc\u666f\u8272\u304c\u52d5\u7684\u306b\u5909\u308f\u308b\u5f62\u306b\u3057\u3066\u307f\u307e\u3057\u305f\u3002\u30b3\u30f3\u30d0\u30fc\u30bf\u306f\u4e00\u3064\u3067\u3001\u3069\u306e\u30b3\u30fc\u30c9\u4f53\u7cfb\u3067\u30c7\u30b3\u30fc\u30c9\u3059\u308b\u304b\u306f\u3001attribute\u3067\u30b3\u30f3\u30d0\u30fc\u30bf\u306b\u60c5\u5831\u3092\u6e21\u3059\u69cb\u6210\u306b\u306a\u3063\u3066\u307e\u3059\u3001\u3068\u308a\u3042\u3048\u305a\u306f\u3002\u3002<\/p>\n<p>CSS\u629c\u7c8b <\/p>\n<pre class=\"lang:css decode:true \" title=\"CSS\" >.listTable th {\r\n\tfont-weight: normal;\r\n\tcolor: #ffffff;\r\n\tbackground-color: #339933;\r\n\ttext-align: center;\r\n\tpadding: 1px;\r\n\tborder-right-style: solid;\r\n\tborder-bottom-style: solid;\r\n\tborder-right-color: #CCCCCC;\r\n\tborder-bottom-color: #CCCCCC;\r\n\tfont-size: 10pt;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.listTable td {\r\n\tpadding: 1px;\r\n\tbackground-color: #ffffff;\r\n\tborder-right-style: solid;\r\n\tborder-bottom-style: solid;\r\n\tborder-right-color: #CCCCCC;\r\n\tborder-bottom-color: #CCCCCC;\r\n\tfont-size: 11pt;\r\n}\r\n\r\n\/* \u8b66\u544a\u8868\u793a *\/\r\n.cError {\r\n\tbackground-color: #ff0000;\r\n\tcolor: #ffffff;\r\n \tdisplay:block;\r\n}\r\n\/* \u4e00\u90e8\u7570\u5e38\u8868\u793a *\/\r\n.cCaution {\r\n\tbackground-color: #ffff00;\r\n \tdisplay:block;\r\n}\r\n\r\n\/* \u5bfe\u8c61\u5916\u8868\u793a *\/\r\n.cNoTaget {\r\n \tbackground-color: #a4a4a4;\r\n \tdisplay:block;\r\n}\r\n\r\n\/* \u901a\u5e38\u8868\u793a *\/\r\n.cDefault {\r\n\tbackground-color: #ffffff;\r\n \tdisplay:block;\r\n}\r\n<\/pre>\n<p>xhtml\u306edataTable\u90e8\u5206\u629c\u7c8b<br \/>\n\u203bwords\u306fwords.properties\u306e\u30d5\u30a1\u30a4\u30eb\u5074\u306b\u5b9a\u7fa9\u3057\u3066\u3044\u308b\u9805\u76ee\u30bf\u30a4\u30c8\u30eb\u306e\u6587\u8a00\u3067\u3059<\/p>\n<pre class=\"lang:xhtml decode:true \" title=\"xhtml\" >    &lt;h:dataTable id=\"Info\" var=\"list\" value=\"#{listView.itemlist}\" styleClass=\"listTable\"&gt;\r\n      &lt;h:column&gt;\r\n        &lt;f:facet name=\"header\" &gt;#{words.Label_coName}&lt;\/f:facet&gt;\r\n        &lt;h:outputText value=\"#{list.coName}\"\/&gt;\r\n      &lt;\/h:column&gt;\r\n      &lt;h:column&gt;\r\n        &lt;f:facet name=\"header\" &gt;#{words.Label_coCode}&lt;\/f:facet&gt;\r\n        &lt;h:outputText value=\"#{list.coCode}\"\/&gt;\r\n      &lt;\/h:column&gt;\r\n      &lt;h:column&gt;\r\n        &lt;f:facet name=\"header\" &gt;#{words.Label_status1}&lt;\/f:facet&gt;\r\n        &lt;h:outputText value=\"#{list.status1}\"&gt;\r\n          &lt;f:converter converterId=\"statusConverter\"\/&gt;\r\n          &lt;f:attribute name=\"ConvertType\" value=\"1\"\/&gt;\r\n        &lt;\/h:outputText&gt;\r\n      &lt;\/h:column&gt;\r\n      &lt;h:column&gt;\r\n        &lt;f:facet name=\"header\" &gt;#{words.Label_status2}&lt;\/f:facet&gt;\r\n        &lt;h:outputText value=\"#{list.status2}\"&gt;\r\n          &lt;f:converter converterId=\"statusConverter\"\/&gt;\r\n          &lt;f:attribute name=\"ConvertType\" value=\"2\"\/&gt;\r\n        &lt;\/h:outputText&gt;\r\n      &lt;\/h:column&gt;\r\n\u4ee5\u4e0b\u7701\u7565\r\n\r\n    &lt;\/h:dataTable&gt;\r\n<\/pre>\n<p>\u30ab\u30b9\u30bf\u30e0\u30b3\u30f3\u30d0\u30fc\u30bf<\/p>\n<pre class=\"lang:java decode:true \" title=\"Converter\" >@FacesConverter(value=\"statusConverter\")\r\npublic class StatusConverter implements Converter {\r\n\r\n\tprivate static final String DEFVALUE = \"X\";\r\n\r\n\tprivate static final String DEFAULT = \"cDefault\";\r\n\tprivate static final String NOTARGET = \"cNoTaget\";\r\n\tprivate static final String CAUTION = \"cCaution\";\r\n\tprivate static final String ERROR = \"cError\";\r\n\t\r\n\t\/\/ ConvertType 1 OKNG\u8868\u793a\r\n\tprivate static final Map&lt;String, String&gt; OkNgState;\r\n\tstatic {\r\n\t\tHashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();\r\n\t\tmap.put(DEFVALUE, \"-\");\r\n\t\tmap.put(\"1\", \"OK\");\r\n\t\tmap.put(\"2\", \"NG\");\r\n\t\tOkNgState = Collections.unmodifiableMap(map);\r\n\t}\r\n\t\/\/ ConvertType 2 \u73fe\u5728\u72b6\u6cc1\u8868\u793a\r\n\tprivate static final Map&lt;String, String&gt; NowState;\r\n\tstatic {\r\n\t\tHashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();\r\n\t\tmap.put(DEFVALUE, \"-\");\r\n\t\tmap.put(\"0\", \"\u51e6\u7406\u524d\");\r\n\t\tmap.put(\"1\", \"\u4ed5\u639b\u4e2d\");\r\n\t\tmap.put(\"2\", \"\u51e6\u7406\u6e08\");\r\n\t\tNowState = Collections.unmodifiableMap(map);\r\n\t}\r\n\t\/\/ ConvertType 3 \u7d50\u679c\u8868\u793a\r\n\tprivate static final Map&lt;String, String&gt; ResStatus;\r\n\tstatic {\r\n\t\tHashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();\r\n\t\tmap.put(DEFVALUE, \"-\");\r\n\t\tmap.put(\"0\", \"\u6b63\u5e38\");\r\n\t\tmap.put(\"1\", \"\u7570\u5e38\");\r\n\t\tmap.put(\"2\", \"\u8b66\u544a\");\r\n\t\tResStatus = Collections.unmodifiableMap(map);\r\n\t}\r\n\t\/\/\u8b66\u544a\u8868\u793a\u5bfe\u8c61\r\n\tprivate static final Map&lt;String, String&gt; Caution;\r\n\tstatic {\r\n\t\tHashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();\r\n\t\tmap.put(\"\u7570\u5e38\", ERROR);\r\n\t\tmap.put(\"\u8b66\u544a\", CAUTION);\r\n\t\tmap.put(\"-\", NOTARGET);\r\n\t\tCaution = Collections.unmodifiableMap(map);\r\n\t}\r\n\r\n\t@Override\r\n\tpublic String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {\r\n\t\tString DispValue=\"\";\r\n\t\tString InnerValue = (String) arg2;\r\n\t\tString StyleClass = DEFAULT;\r\n\t\t\r\n\t\tMap&lt;String,String&gt; ConvertMap = null;\r\n\t\tMap&lt;String,Object&gt; attrMap = arg1.getAttributes();\r\n\t\t\r\n\t\t\/\/f:attribute \u3088\u308a\u5909\u63db\u30bf\u30a4\u30d7\u3092\u53d6\u5f97\r\n\t\tString type = (String)attrMap.get(\"ConvertType\");\r\n\t\tif (! StringUtils.isNumeric(type) ){\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\r\n\t\tswitch (Integer.valueOf(type)){\r\n\t\t\tcase 1:\r\n\t\t\t\tConvertMap = OkNgState;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 2:\r\n\t\t\t\tConvertMap = NowState;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 3:\r\n\t\t\t\tConvertMap = ResStatus;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tDispValue = InnerValue;\r\n\t\t\t\tConvertMap = null;\r\n\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t}\r\n\t\t\/\/\u30c7\u30b3\u30fc\u30c9\r\n\t\tif(ConvertMap != null){\r\n\t\t\tDispValue = ConvertMap.get(InnerValue);\r\n\t\t\t\/\/\u521d\u671f\u5024\r\n\t\t\tif (DispValue == null ){\r\n\t\t\t\tDispValue = ConvertMap.get(DEFVALUE);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\/\/\u30b9\u30bf\u30a4\u30eb\u30af\u30e9\u30b9\u6307\u5b9a\r\n\t\tif(Caution.get(DispValue) != null){\r\n\t\t\t\tStyleClass = Caution.get(DispValue);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\/\/\u8272\u5909\r\n\t\tif (arg1.getClass() == HtmlOutputText.class){\r\n\t\t\tHtmlOutputText ui = (HtmlOutputText) arg1;\r\n\t\t\tui.setStyleClass(StyleClass);\r\n\t\t}\r\n\t\treturn DispValue;\r\n\t}\r\n\t\/\/\u3053\u3063\u3061\u306f\u95a2\u4fc2\u7121\u3057\r\n\t@Override\r\n\tpublic Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {\r\n\t\treturn null;\r\n\t}\r\n}\r\n\r\n<\/pre>\n<p>ManagedBean\u629c\u7c8b<br \/>\n\u203b\u4e00\u89a7\u8868\u793a\u5bfe\u8c61\u306eitemInfo\u306e\u5b9f\u88c5\u306f\u5272\u611b\u3057\u307e\u3059\u3002\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30b2\u30c3\u30bf\u30fb\u30bb\u30c3\u30bf\u304c\u3042\u308b\u3060\u3051\u3067\u3059\u3002\u3002<\/p>\n<pre class=\"lang:java decode:true \" title=\"ManagedBean\" >@ManagedBean(name=\"listView\")\r\n@ViewScoped\r\npublic class ListView {\r\n\tprivate List&lt;itemInfo&gt; itemlist;\r\n\r\n\tpublic List&lt;itemInfo&gt; getitemlist() {\r\n\t\t\/\/\u3053\u3053\u3067itemlist\u306e\u30c7\u30fc\u30bf\u3092\u30bb\u30c3\u30c8\u3057\u3066\u307e\u3059\u304c\u7701\u7565\u3057\u307e\u3059\r\n\t\treturn itemlist;\r\n\t}\r\n\u4ee5\u4e0b\u3001\u7701\u7565\r\n<\/pre>\n<p>\u3053\u3093\u306a\u611f\u3058\u3067\u8868\u793a\u3067\u304d\u305d\u3046\u306a\u306e\u3067\u3001\u5225\u9014\u6574\u7406\u3057\u3066\u5b9f\u88c5\u3057\u307e\u3059\u3002<br \/>\n\u4e0a\u8a18\u4f8b\u3067\u306f\u8272\u304c\u5909\u308f\u308b\u306e\u306f\u884c\u3067\u306a\u304f\u30bb\u30eb\u5358\u4f4d\u306b\u306a\u308a\u307e\u3059\u3002\u306a\u304a\u3001dataTable\u306e\u5834\u5408\u3001\u305d\u306e\u4e2d\u306eoutputText\u306fdiv\u306b\u7f6e\u304d\u63db\u3048\u3089\u3048\u308b\u3088\u3046\u306a\u306e\u3067\u3001\u30b3\u30f3\u30d0\u30fc\u30bf\u3067\u306ftd\u306e\u30b9\u30bf\u30a4\u30eb\u3092\u5909\u3048\u3066\u3044\u308b\u306e\u3067\u306f\u306a\u304fdiv\u304c\u5bfe\u8c61\u306b\u306a\u3063\u3066\u307e\u3059\u3002\u305d\u308c\u3092CSS\u3067\u30ab\u30d0\u30fc\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304c\u3001CSS\u306f\u5f97\u610f\u3067\u306a\u3044\u306e\u3067\u3002\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4eca\u4f5c\u3063\u3066\u3044\u308bWEB\u30a2\u30d7\u30ea\u3067\u3001\u753b\u9762\u306b\u4e00\u89a7\u3092\u8868\u793a\u3057\u3066\u3001\u4e00\u89a7\u8868\u793a\u5185\u306e\u9805\u76ee\u5024\u306b\u3088\u3063\u3066\u80cc\u666f &hellip; <a href=\"https:\/\/esoro.jp\/?p=333\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,6],"tags":[],"_links":{"self":[{"href":"https:\/\/esoro.jp\/index.php?rest_route=\/wp\/v2\/posts\/333"}],"collection":[{"href":"https:\/\/esoro.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esoro.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esoro.jp\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/esoro.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=333"}],"version-history":[{"count":0,"href":"https:\/\/esoro.jp\/index.php?rest_route=\/wp\/v2\/posts\/333\/revisions"}],"wp:attachment":[{"href":"https:\/\/esoro.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esoro.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esoro.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}