model-view-controller - 如何在PlayFramework2上实现小部件?

标签 model-view-controller widget playframework-2.0



如何在网站的每个页面上实现一个小部件(来自数据库调用)?

语境

我有一个带有侧边栏的传统Web应用程序。侧边栏包含以下数据:

  • 用户名
  • 有关帐户(最后的连接和其他)的详细信息
  • 基于用户个人资料的个性化消息。
  • 等从数据库中提取数据。

  • 到目前为止的解决方案

    如官方文档中所示,可以在模板内部渲染模板。这是一个有趣的功能,但还不够。由于我需要数据库中的数据才能在我的小部件中呈现。

    这意味着:
  • 获取侧边栏所需的所有数据,
  • 将数据从每个 Controller 传递到每个 View
  • 最后,在每个模板中,使用给定的数据调用一个外部模板。

  • 我想做的就是Symfony2框架中存在的东西。我希望能够直接调用 Controller 。
    {% render MyController:MyActionMethod %}
    

    如何实现这种机制?

    PS:是的,我已经搜索了一下。找到此问题“类似问题”:How to avoid passing parameters everywhere in play2?

    最佳答案

    首先介绍了两种解决方案-它将来自 Controller 的数据作为某种对象进行传递,然后使用tags进行呈现。

    第二种解决方案是相反的,因为在Play 2中,每个模板只是一个Scala函数,您也可以只在 Controller 中调用某个方法,该方法将获取所需的数据并呈现子模板。

    即。从模板使用访问controllers.MyController.myMethod(Integer a, Integer b)

    <div>
      @MyController.myMethod(1,2) 
    </div>
    

    关于model-view-controller - 如何在PlayFramework2上实现小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11448784/

    相关文章:

    mysql - EF Code First Migrations - 两个程序集 - 查看错误的配置文件

    java - 是否有任何 Java MVC 框架使用请求路径模式而不是定义的 servlet url 模式?

    json - Play 中的prettyPrint jsonNode

    java - 简单的 CDI 注入(inject)出现问题...在 SessionScoped Controller bean 中使用 @Inject 时出现 "Passivation"相关错误

    qt - Qt中Qwidget的高度和宽度的度量单位是什么

    javascript - 在 div 更改时触发 jQuery 事件

    android - 设置 Activity 后小部件未显示在主屏幕中

    playframework - 在 Play Framework 2.0 生产中设置日志记录级别以进行调试?

    jakarta-ee - 使用 JPA Play Framework : Solution for storing a Map, 键值

    java - 在模型中创建复杂的业务逻辑