El表达式作为值传递给另一个el表达式

时间:2014-08-20 17:06:01

标签: jsp date jstl

我只是问这个表达式是否正确我在关闭时得到Unterminated< sql:param标记的错误。

我只想知道这个表达是否正确。

<sql:param value="<fmt:formatDate value="${date}" dateStyle="full"/>" 

,这不起作用

<fmt:parseDate var="date"  value="${param.month}, ${param.day}, ${param.year}" type="DATE"
 pattern="dd/mm/yyyy" />

1 个答案:

答案 0 :(得分:1)

JSPX必须是格式良好的XML。像这样嵌套XML风格的标签确实无效。

只需使用<fmt:formatDate>标记的var属性即可创建一个范围变量,您可以在另一个标记中引用该变量。

<fmt:formatDate value="${date}" dateStyle="full" var="formattedDate" />
<sql:param value="${formattedDate}" /> 

对于您的<fmt:parseDate>尝试,它失败了,因为您在value属性中指定的模式与您在pattern属性中指定的模式不匹配。您基本上在模式期望MM, dd, yyyy时指定值中的模式dd/mm/yyyy。另请注意,mm代表分钟,而不是几个月。您需要MM几个月。

确保它们匹配。

<fmt:parseDate var="date" value="${param.month}/${param.day}/${param.year}" pattern="MM/dd/yyyy" />

有关模式字符的详细信息,另请参阅the SimpleDateFormat javadoc