{"id":8,"date":"2009-06-19T11:23:14","date_gmt":"2009-06-19T17:23:14","guid":{"rendered":"http:\/\/www.klsoftware.com\/blog\/2009\/06\/using-jstl-exception-handling-in-jdev-1012-portlet\/"},"modified":"2009-07-14T07:27:53","modified_gmt":"2009-07-14T13:27:53","slug":"using-jstl-exception-handling-in-jdev-1012-portlet","status":"publish","type":"post","link":"https:\/\/www.klsoftware.com\/blog\/?p=8","title":{"rendered":"Using JSTL Exception Handling in JDev 10.1.2 Portlet"},"content":{"rendered":"<p>The following is a portlet I recently updated for Oracle Portal.  The dates were not formatting properly, so I added a JSTL catch tag.  This also uses choice tags which help when you need an else tag after an if tag.<\/p>\n<pre>&lt;%@ taglib uri=\"http:\/\/java.sun.com\/jstl\/fmt\" prefix=\"fmt\"%&gt;\r\n&lt;%@ taglib uri=\"http:\/\/java.sun.com\/jstl\/core\" prefix=\"c\"%&gt;\r\n&lt;%@ taglib uri=\"http:\/\/xmlns.oracle.com\/adf\/ui\/jsp\/adftags\" prefix=\"adf\"%&gt;\r\n\r\n&lt;%@page contentType=\"text\/html; charset=UTF-8\"%&gt;\r\n&lt;%@page import=\"oracle.portal.provider.v2.http.HttpCommonConstants\"%&gt;\r\n&lt;%@page import=\"oracle.portal.provider.v2.render.PortletRenderRequest\"%&gt;\r\n&lt;%@page import=\"oracle.portal.provider.v2.render.http.HttpPortletRendererUtil\"%&gt;\r\n&lt;%@page import=\"oracle.portal.provider.v2.url.UrlUtils\"%&gt;\r\n\r\n&lt;adf:uimodelreference\r\nmodel=\"htdocs_busroutesportlet_BusRoutesPortletShowPageUIModel\" \/&gt;\r\n&lt;jsp:useBean id=\"now\" class=\"java.util.Date\" \/&gt;\r\n\r\n&lt;script type=\"text\/javascript\"\r\nsrc=\"\/BusRoutes2009Portlet\/scripts\/busroutes2009.js\"&gt;&lt;\/script&gt;\r\n\r\n&lt;c:set var=\"nowdate\" scope=\"page\"&gt;&lt;fmt:formatDate value=\"${now}\" \/&gt;&lt;\/c:set&gt;\r\n&lt;c:set var=\"school\" scope=\"page\" value=\"\" \/&gt;\r\n\r\n&lt;%\r\nPortletRenderRequest pReq =\r\n(PortletRenderRequest)\r\nrequest.getAttribute(HttpCommonConstants.PORTLET_RENDER_REQUEST);\r\n\r\nString paramNameSchool = \"sch\";\r\nString sSQLQuery = \"\";\r\nString paramNameSubmit = \"submit\";\r\n\r\nString qualParamNameSchool =\r\nHttpPortletRendererUtil.portletParameter(pReq, paramNameSchool);\r\nString qualParamNameSubmit =\r\nHttpPortletRendererUtil.portletParameter(pReq, paramNameSubmit);\r\n\r\nString sSchoolValue = pReq.getQualifiedParameter(paramNameSchool);\r\n\r\nString formName = UrlUtils.htmlFormName(pReq,\"busroutes_form\");\r\n\r\npageContext.setAttribute(\"school\",(Object)sSchoolValue);\r\n%&gt;\r\n\r\n&lt;script&gt;\r\nvar sSch = &lt;%=sSchoolValue%&gt;;\r\n&lt;\/script&gt;\r\n\r\n&lt;c:set var=\"sch\"&gt;&lt;%=sSchoolValue%&gt;&lt;\/c:set&gt;\r\n\r\n&lt;form name=&lt;%=formName %&gt; method=\"POST\"\r\naction=\"&lt;%= UrlUtils.htmlFormActionLink(pReq,UrlUtils.PAGE_LINK) %&gt;\"&gt;\r\n&lt;%= UrlUtils.htmlFormHiddenFields(pReq,UrlUtils.PAGE_LINK, formName) %&gt;\r\nSelect School and press submit to see schedule.\r\nClick on column heading to sort.&lt;br \/&gt;\r\n&lt;br \/&gt;\r\nSchool:\r\n&lt;select name=\"&lt;%=qualParamNameSchool%&gt;\" id=\"ctlSchool\"&gt;\r\n&lt;option value=\"0\" &gt;-- Select a School --&lt;\/option&gt;\r\n&lt;c:forEach var=\"row\" items=\"${bindings.SchoolsView1.rangeSet}\"&gt;\r\n&lt;c:choose&gt;\r\n&lt;c:when test=\"${sch == row.Id}\"&gt;\r\n&lt;option value=\"&lt;c:out value=\"${row.Id}\"\/&gt;\" selected=\"selected\"&gt;\r\n&lt;c:set var=\"mapurl\" scope=\"page\"&gt;\r\n&lt;c:out value=\"${row.MapUrl}\" \/&gt;\r\n&lt;\/c:set&gt;\r\n&lt;c:set var=\"websiteurl\" scope=\"page\"&gt;\r\n&lt;c:out value=\"${row.WebsiteUrl}\" \/&gt;\r\n&lt;\/c:set&gt;\r\n&lt;c:set var=\"schooltype\" scope=\"page\"&gt;\r\n&lt;c:out value=\"${row.TypeId}\" \/&gt;\r\n&lt;\/c:set&gt;\r\n&lt;\/c:when&gt;\r\n&lt;c:otherwise&gt;\r\n&lt;option value=\"&lt;c:out value=\"${row.Id}\"\/&gt;\"&gt;\r\n&lt;\/c:otherwise&gt;\r\n&lt;\/c:choose&gt;\r\n&lt;c:out value=\"${row.School}\" \/&gt;\r\n&lt;\/option&gt;\r\n&lt;\/c:forEach&gt;\r\n&lt;\/select&gt;\r\n&lt;br \/&gt;\r\n&lt;br \/&gt;\r\n&lt;input type=submit name=\"&lt;%= qualParamNameSubmit %&gt;\" value=\"submit\" \/&gt;\r\n&lt;\/form&gt;\r\n\r\n&lt;br \/&gt;\r\n&lt;br \/&gt;\r\n\r\n&lt;table border=\"0\" id=\"urls\"&gt;\r\n&lt;tbody&gt;\r\n&lt;tr&gt;\r\n&lt;td&gt;\r\n&lt;c:choose&gt;\r\n&lt;c:when test=\"${not empty mapurl}\"&gt;\r\n&lt;a href=\"&lt;c:out value=\"${mapurl}\"\/&gt;\"\r\ntarget=\"_blank\"&gt;\r\n&lt;font class=\"titleorimageid1siteid53\"&gt;\r\nBus Route Map\r\n&lt;\/font&gt;\r\n&lt;\/a&gt;\r\n&lt;\/c:when&gt;\r\n&lt;c:otherwise&gt;\r\n&amp;nbsp;\r\n&lt;\/c:otherwise&gt;\r\n&lt;\/c:choose&gt;\r\n&lt;\/td&gt;\r\n&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;\/td&gt;\r\n&lt;td&gt;\r\n&lt;c:choose&gt;\r\n&lt;c:when test=\"${not empty websiteurl}\"&gt;\r\n&lt;a href=\"&lt;c:out value=\"${websiteurl}\"\/&gt;\"\r\ntarget=\"_blank\"&gt;\r\n&lt;font class=\"titleorimageid1siteid53\"&gt;\r\nSchool Web Site\r\n&lt;\/font&gt;\r\n&lt;\/a&gt;\r\n&lt;\/c:when&gt;\r\n&lt;c:otherwise&gt;\r\n&amp;nbsp;\r\n&lt;\/c:otherwise&gt;\r\n&lt;\/c:choose&gt;\r\n&lt;\/td&gt;\r\n&lt;\/tr&gt;\r\n&lt;\/tbody&gt;\r\n&lt;\/table&gt;\r\n\r\n&lt;br \/&gt;\r\n&lt;br \/&gt;\r\n\r\n&lt;c:set var=\"vo\" scope=\"page\" value=\"${bindings.BRView_2009_1.viewObject}\" \/&gt;\r\n&lt;%\r\ntry {\r\nObject o = pageContext.getAttribute(\"vo\");\r\noracle.jbo.ViewObject vo = (oracle.jbo.ViewObject)o;\r\nString sWhereClause = \"SCHOOL_ID = \"   sSchoolValue   \" \";\r\n\r\nvo.setWhereClause(sWhereClause);\r\nsSQLQuery = vo.getQuery();\r\n\r\nvo.executeQuery();\r\nSystem.out.println(\"Query: \"   vo.getQuery());\r\nSystem.out.println(\"sSchoolValue: \"   sSchoolValue);\r\n} catch (Exception e) {\r\nSystem.out.println(\"Error:\"   e.getMessage());\r\nSystem.out.println(\"sSchoolValue = \"   sSchoolValue);\r\n}\r\n%&gt;\r\n\r\n&lt;br \/&gt;\r\n&lt;br \/&gt;\r\n\r\n&lt;table id=\"example\" class=\"tablesorter\" border=\"1\" width=\"100%\"&gt;\r\n&lt;thead&gt;\r\n&lt;tr&gt;\r\n&lt;th style=\"text-align: center\"&gt;&lt;c:out value=\"Route\" \/&gt;&lt;\/th&gt;\r\n&lt;c:choose&gt;\r\n&lt;c:when test=\"${schooltype == 3}\"&gt;\r\n&lt;th style=\"text-align: center\"&gt;&lt;c:out value=\"Route Animal\" \/&gt;&lt;\/th&gt;\r\n&lt;\/c:when&gt;\r\n&lt;c:otherwise&gt;\r\n&lt;th style=\"text-align: center\"&gt;&amp;nbsp;&lt;\/th&gt;\r\n&lt;\/c:otherwise&gt;\r\n&lt;\/c:choose&gt;\r\n&lt;th&gt;&lt;c:out value=\"Stop\" \/&gt;&lt;\/th&gt;\r\n&lt;th style=\"text-align: center\"&gt;&lt;c:out value=\"AM\" \/&gt;&lt;\/th&gt;\r\n&lt;th style=\"text-align: center\"&gt;&lt;c:out value=\"PM\" \/&gt;&lt;\/th&gt;\r\n&lt;th style=\"text-align: center\"&gt;&lt;c:out value=\"Start Date\" \/&gt;&lt;\/th&gt;\r\n&lt;th style=\"text-align: center\"&gt;&lt;c:out value=\"Stop Date\" \/&gt;&lt;\/th&gt;\r\n&lt;\/tr&gt;\r\n&lt;\/thead&gt;\r\n&lt;tbody&gt;\r\n&lt;c:forEach var=\"Row\" items=\"${bindings.BRView_2009_1.rangeSet}\" &gt;\r\n&lt;c:catch var=\"errorvalue\"&gt;\r\n&lt;fmt:parseDate value=\"${Row['StartServiceDate']}\"\r\nvar=\"startdate\"\r\npattern=\"MM-dd-yyyy\" \/&gt;\r\n&lt;fmt:parseDate value=\"${Row['StopServiceDate']}\"\r\nvar=\"stopdate\"\r\npattern=\"MM-dd-yyyy\" \/&gt;\r\n&lt;\/c:catch&gt;\r\n\r\n&lt;c:if test=\"${not empty startdate}\"&gt;\r\n&lt;c:set var=\"startdatedisplay\" scope=\"page\"&gt;\r\n&lt;fmt:formatDate value=\"${startdate}\" \/&gt;\r\n&lt;\/c:set&gt;\r\n&lt;\/c:if&gt;\r\n\r\n&lt;c:if test=\"${not empty stopdate}\"&gt;\r\n&lt;c:set var=\"stopdatedisplay\" scope=\"page\"&gt;\r\n&lt;fmt:formatDate value=\"${stopdate}\" \/&gt;\r\n&lt;\/c:set&gt;\r\n&lt;\/c:if&gt;\r\n\r\n&lt;tr&gt;\r\n&lt;td align=center&gt;&lt;c:out value=\"${Row['Route']}\" \/&gt;&amp;nbsp;&lt;\/td&gt;\r\n&lt;c:choose&gt;\r\n&lt;c:when test=\"${schooltype == 3}\"&gt;\r\n&lt;td align=center&gt;\r\n&lt;img src=\"someurl.retrieve_image?p_id=&lt;c:out value=\"${Row['ImageId']}\" \/&gt;\"\r\nalt=\"no image\" \/&gt;&lt;\/td&gt;\r\n&lt;\/c:when&gt;\r\n&lt;c:otherwise&gt;\r\n&lt;td align=center&gt;&amp;nbsp;&lt;\/td&gt;\r\n&lt;\/c:otherwise&gt;\r\n&lt;\/c:choose&gt;\r\n&lt;td&gt;&lt;c:out value=\"${Row['Stop']}\" \/&gt;&amp;nbsp;&lt;\/td&gt;\r\n&lt;td align=center&gt;&lt;c:out value=\"${Row['Am']}\" \/&gt;&amp;nbsp;&lt;\/td&gt;\r\n&lt;td align=center&gt;&lt;c:out value=\"${Row['Pm']}\" \/&gt;&amp;nbsp;&lt;\/td&gt;\r\n&lt;c:choose&gt;\r\n&lt;c:when test=\"${now ge startdate}\"&gt;\r\n&lt;td align=center&gt;&amp;nbsp;&lt;\/td&gt;\r\n&lt;\/c:when&gt;\r\n&lt;c:when test=\"${now lt startdate}\"&gt;\r\n&lt;td align=center style=\"color: blue;\"&gt;\r\n&lt;c:out value=\"${startdatedisplay}\" \/&gt;&amp;nbsp;\r\n&lt;\/td&gt;\r\n&lt;\/c:when&gt;\r\n&lt;c:otherwise&gt;\r\n&lt;td align=center&gt;&lt;c:out value=\"${startdatedisplay}\" \/&gt;&amp;nbsp;&lt;\/td&gt;\r\n&lt;\/c:otherwise&gt;\r\n&lt;\/c:choose&gt;\r\n&lt;c:choose&gt;\r\n&lt;c:when test=\"${now lt stopdate}\"&gt;\r\n&lt;td align=center style=\"color: red;\"&gt;\r\n&lt;c:out value=\"${stopdatedisplay}\" \/&gt;&amp;nbsp;\r\n&lt;\/td&gt;\r\n&lt;\/c:when&gt;\r\n&lt;c:otherwise&gt;\r\n&lt;td align=center&gt;&lt;c:out value=\"${stopdatedisplay}\" \/&gt;&amp;nbsp;&lt;\/td&gt;\r\n&lt;\/c:otherwise&gt;\r\n&lt;\/c:choose&gt;\r\n&lt;\/tr&gt;\r\n&lt;\/c:forEach&gt;\r\n&lt;\/tbody&gt;\r\n&lt;\/table&gt;\r\n\r\n&lt;br \/&gt;\r\n&lt;br \/&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>The following is a portlet I recently updated for Oracle Portal. The dates were not formatting properly, so I added a JSTL catch tag. This also uses choice tags which help when you need an else tag after an if tag. &lt;%@ taglib uri=&#8221;http:\/\/java.sun.com\/jstl\/fmt&#8221; prefix=&#8221;fmt&#8221;%&gt; &lt;%@ taglib uri=&#8221;http:\/\/java.sun.com\/jstl\/core&#8221; prefix=&#8221;c&#8221;%&gt; &lt;%@ taglib uri=&#8221;http:\/\/xmlns.oracle.com\/adf\/ui\/jsp\/adftags&#8221; prefix=&#8221;adf&#8221;%&gt; &lt;%@page contentType=&#8221;text\/html; [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[8],"class_list":["post-8","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-jdev1012-portlet-jstl"],"_links":{"self":[{"href":"https:\/\/www.klsoftware.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.klsoftware.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.klsoftware.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.klsoftware.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.klsoftware.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8"}],"version-history":[{"count":4,"href":"https:\/\/www.klsoftware.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8\/revisions"}],"predecessor-version":[{"id":12,"href":"https:\/\/www.klsoftware.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8\/revisions\/12"}],"wp:attachment":[{"href":"https:\/\/www.klsoftware.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.klsoftware.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.klsoftware.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}