【问题标题】:Play! 2 Rendering JSON data in View from Controller玩! 2 从控制器的视图中渲染 JSON 数据
【发布时间】:2015-07-28 22:23:21
【问题描述】:

基于此http://www.markhneedham.com/blog/2012/10/14/play-framework-2-0-rendering-json-data-in-the-view/

我的观点:

    @(message: String)(myobjects:ObjectNode)
@import com.fasterxml.jackson.databind.JsonNode
@import com.fasterxml.jackson.databind.node.ObjectNode

控制器:

ObjectNode myobjects = objectsDAO.getObjects();
return ok(myview.render("test",myobjects ));

错误

 not found: type ObjectNode

似乎不适用于 ObjectNode,视图中的导入似乎不起作用。找不到太多关于向视图传递 JSON 的文档

【问题讨论】:

  • 您使用的是哪个版本的 Play?你指的那个帖子比较老了。

标签: java scala playframework playframework-2.0 scala-2.10


【解决方案1】:

尝试将其定义为:@(message: String, myobjects:com.fasterxml.jackson.databind.node.ObjectNode),或者如果这不起作用,请将@imports 放入您的main.scala.html,因为它包含您其他视图的内容....

<body>
    @content
</body>

【讨论】:

  • 如果我没记错的话,它与 Play Framework 默认导入的类有关。例如,默认情况下会导入 .models 包中的所有内容,因此如果您说 models.Product 类,则不需要在视图中使用 Product 的完整路径。但是杰克逊类不在您的模型文件夹中......而是在构建路径上某个单独的 jar 中。稍后我会尝试查找我为自己做的一些笔记,看看我是否可以对此进行扩展,但如果我没记错的话 - 这就是问题的症结所在。
  • 我在想为什么@import 不起作用,它必须放在括号内
  • 这确实是同样的问题,在您看来,您在声明其导入之前尝试使用对象类型。您是否尝试过第二种方式 - 将所有导入放入 main.scala.html 以便在处理对象类型参数之前初始化它们?试试看,看看会发生什么......
猜你喜欢
  • 2017-07-16
  • 1970-01-01
  • 1970-01-01
  • 2015-04-04
  • 2015-08-01
  • 1970-01-01
  • 2023-03-22
  • 2011-12-19
  • 1970-01-01
相关资源
最近更新 更多