【问题标题】:Change page title from Spring MVC Velocity view?从 Spring MVC Velocity 视图更改页面标题?
【发布时间】:2013-09-03 13:45:45
【问题描述】:

我觉得页面标题应该由视图而不是控制器或模型来定义。

在 Zend Framework 中,我可以在视图中这样写: $this->headTitle('Signup');

这会将页面的窗口标题更改为“注册”。

如何在 Java Spring MVC 中使用 Velocity 作为视图来做到这一点?

我想也许我可以使用类似的东西:

$page.setTitle("Signup")

但是没有用。

这可能类似于这个问题:https://stackoverflow.com/questions/18539645/how-to-set-head-meta-tag-from-view-layer-in-spring-mvc-velocity

附:我也在使用 Apache Tiles,所以我有一个用于 layout.vm 的 Velocity 文件(它创建 HTML、HEAD、BODY 等)和一个用于 signup.vm 的 Velocity 文件(它只是创建注册表单)。我希望能够在 signup.vm 中指定页面的标题应该是什么。

【问题讨论】:

    标签: java spring spring-mvc velocity


    【解决方案1】:

    您的速度视图正在生成发送到浏览器的所有 HTML。您只需将<title> 元素添加到您的页面。

    SignupController.java

    @RequestMapping(value = "/signUp", method = RequestMethod.GET)
    public ModelAndView signup() {
        ModelAndView modelView = new ModelAndView("sign_up");
        modelView.setObect("personName", "The Dude");
        return modelView;
    }
    

    sign_up.vm

    <html>
      <head>
        <title>Signup</title>
      </head>
      <body>
        <p>Looks like you are signing up for something, ${personName}</p>
      </body>
    </html>
    

    【讨论】:

    • 对不起,我应该在我的问题中指定我正在使用 Apache Tiles,因此无法从我的位置访问 xxx 代码我正在为这个特定的视图编码这个速度模板。这个视图文件只是插入到布局中的“内容”。我会在问题中提到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多