Spring fmt标签+ handlebars.js模板+ ajax

时间:2014-08-18 12:35:48

标签: jquery ajax spring spring-mvc internationalization

我正在使用spring fmt标签会显示评论已发布的日期。像这样:

<fmt:formatDate type="both" value="${comment.date}" />

这适用于已发布的所有评论。 (写在页面加载上)

问题在于使用ajax动态添加新注释时。

然后我使用如下手柄模板。

<script id="new-comment-template" type="text/x-handlebars-template">
    <div class="discussion-comment" id="{{id}}">
        <h4 class="inline">
            <small>
                <a href="/users/{{userId}}" class="text-primary inline">{{name}}</a> at {{university}} {{date}}
            </small>
        </h4>
        <form id="command" class="pull-right inline" action="/courses/${course.id}/${course.name}/comment/{{id}}"
              method="post"><input type="hidden" name="_method" value="delete">
            <button type="submit" class="btn btn-danger btn-sm">
                <i class="fa fa-trash-o fa-lg"></i>
            </button>
        </form>
        <p>{{{message}}}</p>
    </div>
</script>

但是来自服务器的{{date}}变量是错误的形式,如果我正在尝试

<fmt:formatDate type="both" value="{{date}}" />

我得到一个错误,因为在解析模板时该值不存在(我猜)。

我喜欢使用spring fmt:formatDate标签,因为它处理我的国际化。

有可能吗?

如果不是,我正在考虑一些替代方案:

  1. 跟踪客户的时间。不断更新,写“5分钟前”,“10分钟前”等等。直到页面刷新。
  2. 尝试直接从服务器以正确的格式发送时间。是否可以在服务器端运行fmt:formatDate?
  3. 谢谢你的建议。

1 个答案:

答案 0 :(得分:0)

您可能会发现Moment.JS是解决此问题的方法。