异常:
"org.apache.jasper.JasperException: 在 [115] 行处理 [/WEB-INF/jsp/modules/receivedyaccnotify/receive_dy_acc_notify.jsp] 时发生异常"
代码:
<%@ taglib prefix= "fmt" uri= "http://java.sun.com/jsp/jstl/fmt" %>
<td><fmt:formatDate value= "${record.transTime}" pattern= "yyyy-MM-dd HH:mm:ss" type= "date" /></td>
原因:
详解:
【Date and/or time to be formatted.】:需要转换的value得是Date对象类型
1 <tag> 2 <description> 3 Formats a date and/or time using the supplied styles and pattern 4 </description> 5 <name>formatDate</name> 6 <tag-class>org.apache.taglibs.standard.tag.rt.fmt.FormatDateTag</tag-class> 7 <body-content>empty</body-content> 8 <attribute> 9 <description> 10 Date and/or time to be formatted. 11 </description> 12 <name>value</name> 13 <required>true</required> 14 <rtexprvalue>true</rtexprvalue> 15 </attribute> 16 <attribute> 17 <description> 18 Specifies whether the time, the date, or both 19 the time and date components of the given 20 date are to be formatted. 21 </description> 22 <name>type</name> 23 <required>false</required> 24 <rtexprvalue>true</rtexprvalue> 25 </attribute> 26 <attribute> 27 <description> 28 Predefined formatting style for dates. Follows 29 the semantics defined in class 30 java.text.DateFormat. Applied only 31 when formatting a date or both a date and 32 time (i.e. if type is missing or is equal to 33 "date" or "both"; ignored otherwise. 34 </description> 35 <name>dateStyle</name> 36 <required>false</required> 37 <rtexprvalue>true</rtexprvalue> 38 </attribute> 39 <attribute> 40 <description> 41 Predefined formatting style for times. Follows 42 the semantics defined in class 43 java.text.DateFormat. Applied only 44 when formatting a time or both a date and 45 time (i.e. if type is equal to "time" or "both"; 46 ignored otherwise. 47 </description> 48 <name>timeStyle</name> 49 <required>false</required> 50 <rtexprvalue>true</rtexprvalue> 51 </attribute> 52 <attribute> 53 <description> 54 Custom formatting style for dates and times. 55 </description> 56 <name>pattern</name> 57 <required>false</required> 58 <rtexprvalue>true</rtexprvalue> 59 </attribute> 60 <attribute> 61 <description> 62 Time zone in which to represent the formatted 63 time. 64 </description> 65 <name>timeZone</name> 66 <required>false</required> 67 <rtexprvalue>true</rtexprvalue> 68 </attribute> 69 <attribute> 70 <description> 71 Name of the exported scoped variable which 72 stores the formatted result as a String. 73 </description> 74 <name>var</name> 75 <required>false</required> 76 <rtexprvalue>false</rtexprvalue> 77 </attribute> 78 <attribute> 79 <description> 80 Scope of var. 81 </description> 82 <name>scope</name> 83 <required>false</required> 84 <rtexprvalue>false</rtexprvalue> 85 </attribute> 86 </tag>
因为从数据库读取的字段为字符串格式的"20230321165837",通过【fmt:formatDate】转换的时候以致发生异常。
1 <td> 2 <fmt:parseDate value="${record.transTime}" var="trade_Date" pattern="yyyyMMddHHmmss" type="date"/> //yyyyMMddHHmmss见补充说明※1. 3 <fmt:formatDate value="${trade_Date}" pattern="yyyy-MM-dd HH:mm:ss" type="date"/> //yyyy-MM-dd HH:mm:ss见补充说明※2. 4 </td>
※1.关于【yyyyyMMddHHmmss】:与转换的日期字符串的格式一致,否则可能回报【value attribute can not be parsed: "20230321165837"】错误。
日期字符串:"20230321165837:
示例2:
转换格式:"yyyy/MM/dd HH:mm:ss"
日期字符串:"2021-06-10T22:04:34"
示例4:
转换格式:"yyyy-MM-dd'T'HH:mm:ssXXX"
※3.关于【fmt:parseDate】的入值与出值的类型说明:
【Name of the exported scoped variable in which the parsing result (of type java.util.Date is stored.】:返回的值是java.util.Date类型
1 <tag> 2 <description> 3 Parses the string representation of a date and/or time 4 </description> 5 <name>parseDate</name> 6 <tag-class>org.apache.taglibs.standard.tag.rt.fmt.ParseDateTag</tag-class> 7 <body-content>JSP</body-content> 8 <attribute> 9 <description> 10 Date string to be parsed. 11 </description> 12 <name>value</name> 13 <required>false</required> 14 <rtexprvalue>true</rtexprvalue> 15 </attribute> 16 <attribute> 17 <description> 18 Specifies whether the date string in the 19 value attribute is supposed to contain a 20 time, a date, or both. 21 </description> 22 <name>type</name> 23 <required>false</required> 24 <rtexprvalue>true</rtexprvalue> 25 </attribute> 26 <attribute> 27 <description> 28 Predefined formatting style for days 29 which determines how the date 30 component of the date string is to be 31 parsed. Applied only when formatting a 32 date or both a date and time (i.e. if type 33 is missing or is equal to "date" or "both"; 34 ignored otherwise. 35 </description> 36 <name>dateStyle</name> 37 <required>false</required> 38 <rtexprvalue>true</rtexprvalue> 39 </attribute> 40 <attribute> 41 <description> 42 Predefined formatting styles for times 43 which determines how the time 44 component in the date string is to be 45 parsed. Applied only when formatting a 46 time or both a date and time (i.e. if type 47 is equal to "time" or "both"; ignored 48 otherwise. 49 </description> 50 <name>timeStyle</name> 51 <required>false</required> 52 <rtexprvalue>true</rtexprvalue> 53 </attribute> 54 <attribute> 55 <description> 56 Custom formatting pattern which 57 determines how the date string is to be 58 parsed. 59 </description> 60 <name>pattern</name> 61 <required>false</required> 62 <rtexprvalue>true</rtexprvalue> 63 </attribute> 64 <attribute> 65 <description> 66 Time zone in which to interpret any time 67 information in the date string. 68 </description> 69 <name>timeZone</name> 70 <required>false</required> 71 <rtexprvalue>true</rtexprvalue> 72 </attribute> 73 <attribute> 74 <description> 75 Locale whose predefined formatting styles 76 for dates and times are to be used during 77 the parse operation, or to which the 78 pattern specified via the pattern 79 attribute (if present is applied. 80 </description> 81 <name>parseLocale</name> 82 <required>false</required> 83 <rtexprvalue>true</rtexprvalue> 84 </attribute> 85 <attribute> 86 <description> 87 Name of the exported scoped variable in 88 which the parsing result (of type 89 java.util.Date is stored. 90 </description> 91 <name>var</name> 92 <required>false</required> 93 <rtexprvalue>false</rtexprvalue> 94 </attribute> 95 <attribute> 96 <description> 97 Scope of var. 98 </description> 99 <name>scope</name> 100 <required>false</required> 101 <rtexprvalue>false</rtexprvalue> 102 </attribute> 103 </tag>