使用和显示变量

知识点

使用变量表达式 ${...} 从上下文中获取某个变量的值。

现在让我们为我们的杂货店主页增加一些内容。例如,我们可能想在我们的欢迎提示语下面显示日期,像这样:

Welcome to our fantastic grocery store!

Today is: 12 july 2010

首先,我们必须修改我们的控制器,以便将该日期作为一个上下文变量加入到上下文。控制器代码如下:

@Override
public void process(final IWebExchange webExchange, final ITemplateEngine templateEngine,
        final Writer writer) throws Exception {
    WebContext ctx = new WebContext(webExchange, webExchange.getLocale());
    // 给上下文添加一个日期变量 today
    ctx.setVariable("today", Calendar.getInstance());
    templateEngine.process("home", ctx, writer);
}

我们已经在上下文中添加了一个名为 “today” 的字符串变量,现在我们可以在模板中显示它。例如:

<body>
    <!-- #{} 国际化表达式 -->
    <p th:utext="#{home.welcome}">Welcome to our grocery store!</p>
    <!-- ${} 变量表达式 -->
    <p>Today is: <span th:text="${today}">13 February 2011</span></p>
</body>

正如你所看到的,我们仍然使用 th:text 属性来完成这项工作,但这次的语法有点不同,我们使用的不是 #{...} 表达式,而是 ${...} 表达式。这是一个变量表达式,它包含了一种叫做 OGNL(Object-Graph Navigation Language)的语言表达式,将在我们之前谈到的上下文变量上执行。

${today} 表达式只是意味着 "获取名为 today 的变量",但这些表达式可能更复杂(比如 ${user.name} 表示 "获取名为 user 的变量,并调用其 getName() 方法")。


说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号