java后端传日期字符串到freemarker前端无法识别问题

时间:2024-03-22 10:45:51

问题:前端使用freemarker框架,java后端传一个集合到前端(集合中有日期类型的字符串)显示日期时无法识别并报错:

1,前端代码:

 <@fm.dataBar>
        <@fm.datagrid id="dataGrid">
            <thead>
                <tr><th>留言时间</th></tr>
            </thead>

             <tbody>
                    <#if datalist??>
                   <#list datalist as dataItem>
                    <tr>
                    <td>${dataItem.addtime}</td>
                </#list>
                </#if>
            </tbody>
        </@fm.datagrid>
    </@fm.dataBar>
2,报错截图:

java后端传日期字符串到freemarker前端无法识别问题

java后端传日期字符串到freemarker前端无法识别问题

3,问题的原因:freemarker框架内分装了自己的格式,如果不按格式写框架将无法识别

4,具体分析:如果不需和格式模式使用 ?date?time 或 ?datetime, 比如 "yyyy.MM.dd HH:mm",因为使用这些模式, 就告诉 FreeMarker 来显示哪部分日期。那么,FreeMarker 将盲目地相信你, 如果你显示的部分不存在于变量中,则可以显示"干扰"。例如, ${openingTime?string["yyyy-MM-dd hh:mm:ss a"]}, 而 openingTime 中只存储了时间,将会显示 1970-01-01 09:24:44 PM

5,详情分析参考链接:http://freemarker.foofun.cn/ref_builtins_date.html

6,解决办法(给定格式让框架可以解析即可):

java后端传日期字符串到freemarker前端无法识别问题

7,效果图

java后端传日期字符串到freemarker前端无法识别问题