javax.servlet.jsp.JspException:在< parseDate>中,无法建立解析语言环境

时间:2015-08-11 06:05:08

标签: jsp jstl atg oracle-commerce

是否有人能够确定此错误的根本原因?使用fmt:parseDate标记,以正确的格式解析日期。我似乎无法找到一种方法来复制导致此异常的原因。 我的日期格式如下:“2015-08-06 13:13:30.59” 从DB中提取order.submittedDate值并尝试从日期对象获取dd。

<fmt:parseDate value="${order.submittedDate}" pattern="yyyy-MM-dd" var="formatedDate"/>
<fmt:formatDate pattern="dd" value="${formatedDate}" var="submittedDay"/>

在完整的堆栈跟踪下面找到

    javax.servlet.jsp.JspException: In &lt;parseDate&gt;, a parse locale can not be established
at org.apache.taglibs.standard.tag.common.fmt.ParseDateSupport.doEndTag(ParseDateSupport.java:138)
at org.apache.jsp.tp_002dapp.emailTemplate.orderConfirmationEmail_jsp._jspx_meth_fmt_005fparseDate_005f0(orderConfirmationEmail_jsp.java:1323)

2 个答案:

答案 0 :(得分:4)

尝试使用以下代码将en_GB作为区域设置传递 - 您需要将其替换为您的区域设置:

 <fmt:parseDate value="${order.submittedDate}" pattern="yyyy-MM-dd" var="formatedDate" parseLocale="en_GB" />

如果您想对区域设置进行软编码,可以按照以下步骤在ATG中执行:

<dsp:importbean var="requestLocale" bean="/atg/dynamo/servlet/RequestLocale" />
<fmt:setLocale value="${requestLocale.locale}"/>
<fmt:parseDate value="${order.submittedDate}" pattern="yyyy-MM-dd" var="formatedDate" />

答案 1 :(得分:-1)

使用Accept-Language Header

发送请求

尝试使用java客户端发出请求时出现此错误。浏览器默认发送Accept-Language Header。因此客户端请求应包含此标头。

Accept-Language: en-GB