【问题标题】:How to make an AJAX call in Magnolia Blossom?如何在 Magnolia Blossom 中进行 AJAX 调用?
【发布时间】:2015-05-08 12:21:42
【问题描述】:

我是木兰花的新手。

我必须在 Blossom 的应用程序中执行 AJAX 调用。 我们每个组件都有一个控制器。所以我无法发出AJAX 请求。

谁能建议我如何做到这一点?

【问题讨论】:

    标签: ajax magnolia


    【解决方案1】:

    您可以定义一个不同的 Servlet(和 Web 应用程序上下文),您可以定义一个 Servlet 来处理从 /rest/* 开始的所有请求,然后在您的 web.xml 中的下面,您可以定义开花 Servlet。 剩下的就是配置了,试试看如何创建一个有2个不同上下文的webapp。

    【讨论】:

      【解决方案2】:

      进入 servlet 容器的请求无法访问您用于呈现内容的控制器。没有内容,它们就毫无用处,也不会产生有意义的输出。您需要一个单独的 DispatcherServlet 来处理这些 AJAX 请求。

      有两种方法可以实现这一点。您可以将新的 DispatcherServlet 添加到 web.xml,也可以将 servlet 添加到安装模块时安装的模块。

      后者是更好的选择,因为您不需要拥有两个单独的 ApplicationContext。启动时在模块中创建的将是两个 DispatcherServlet 的父级,因此两者都可以访问其中的 bean。您也不需要更新 web.xml,这使得模块安装和 Magnolia 升级更容易。

      在你的模块描述符中添加这个 sn-p:

      <servlets>
        <servlet>
          <name>dispatcher</name>
          <class>org.springframework.web.servlet.DispatcherServlet</class>
          <mappings>
            <mapping>/ajax/*</mapping>
          </mappings>
          <params>
            <param>
              <name>contextConfigLocation</name>
              <value>classpath:/ajax-servlet.xml</value>
            </param>
          </params>
        </servlet>
      </servlets>
      

      Magnolia wiki https://wiki.magnolia-cms.com/display/WIKI/Adding+a+DispatcherServlet+to+a+Blossom+module 中描述了此主题和其他主题

      【讨论】:

      • 嗨@sigget,可以做更多澄清,因为我对开花很陌生。开花中的模块描述符是什么?是 *module.xml 文件吗?如果我们在这里添加,那么下一步要做什么?
      • 如果您有任何示例示例,它会更有帮助。谢谢。
      • 是的,模块描述符是您的 src/main/resources/META-INF/magnolia/.xml 文件。更新后,您需要重新安装模块。
      • ajax-servlet.xml 文件的内容是什么。在模块描述符中配置之后,我们如何编写特定于 AJAX 调用的控制器。如果我们可以通过ajax请求访问控制器,那么我们可以编写一个简单的spring控制器。对吗?
      • ajax-servlet.xml 将是一个普通的 Spring bean 定义 xml 文件。编写控制器是普通的 Spring 风格。
      【解决方案3】:

      根据你想得到什么,你也可以使用 Magnolia 的 REST 模块。例如阅读网站标题,您可以拨打http://localhost:8080/magnoliaAuthor/.rest/properties/v1/website/demo-project/siteTitle 更多详细信息documentation

      您还可以使用 REST 模块通过注释源代码来非常轻松地添加您自己的端点。

      HTH, 一月

      【讨论】:

        猜你喜欢
        • 2013-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-05
        • 2012-12-23
        • 1970-01-01
        相关资源
        最近更新 更多