如何解决将Spring模型发送到Freemarker头标,没有特定路线
从Spring发送到Freemarker时遇到问题。我使用的服务需要从调用方法中获取脚本并将脚本放入head标记中。我对所有页面使用相同的header.ftl。也就是说,我的head.ftl类似于:
<html>
<head>
// head content
</head>
<body> // But no close tag for body.
在其他情况下,我会这样做:
<#include "header.ftl">
// then continue with body content
这就是我在做什么:
在处理多个RequestMapping的UI控制器中,我添加:
@ModelAttribute("client")
public Client getTheClient() {
return new Client();
}
此UI控制器中的其他方法主要是:
@RequestMapping(value="/apple")
public void apple(HttpServletRequest req,HttpServletResponse res) {
// bind the page with a "apple.ftl" templage
}
在head标签中,我这样做:
<script type="text/javascript">${client.getScript()}</script>
但是找不到“客户端”。 (说未定义之类的) 然后我添加
<#import "/spring.ftl as spring">
<@spring.bind "client">
在脚本之前,现在它显示“读取导入的spring.ftl错误”。 (我也不知道spring.ftl在哪里。我只是关注互联网上的其他帖子。)
其他帖子都在谈论为RequestMapping提供特定的路由,并且大多数使用jsp作为前端。但就我而言,情况有所不同。
有人可以帮忙吗?我真的很感激!!!
解决方法
我不知道您的Client
对象的样子,也可能有助于发布您的模型。
但是,这是我发现的几件事:
首先,每个控制器都需要url映射。将一个添加到您的getTheClient()
中:
@RequestMapping("/client/get",method = RequestMethod.GET)
public ModelAndView getTheClient() {
ModelAndView mav = new ModelAndView("index");
mav.addObject("client",new Client());
return mav;
}
第二,您引用模型和访问模型的方式不正确。正确的方法
<script type="text/javascript">${client.name}</script>
假设模型名称为Client
,并且字段为name
(无需使用set或获取prefexes)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。