Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Magnolia Blossom中调用AJAX?_Ajax_Magnolia - Fatal编程技术网

如何在Magnolia Blossom中调用AJAX?

如何在Magnolia Blossom中调用AJAX?,ajax,magnolia,Ajax,Magnolia,我是新来的木兰花 我必须在Blossom中的应用程序中执行AJAX调用。 我们每个组件都有一个控制器。因此,我无法发出AJAX请求 有人能建议我如何实现这一点吗?您可以定义一个不同的Servlet(和web应用程序上下文),您可以定义一个Servlet来处理从/rest/*开始的所有请求,然后在web.xml上定义该Servlet。 剩下的都是配置,试着看看如何创建具有2种不同上下文的webapp。进入servlet容器的请求无法访问用于呈现内容的控制器。没有内容,它们就毫无用处,无法产生有意义

我是新来的木兰花

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


有人能建议我如何实现这一点吗?

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

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

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

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

在模块描述符中添加以下代码段:

<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>

调度员
org.springframework.web.servlet.DispatcherServlet
/阿贾克斯/*
上下文配置位置
类路径:/ajax-servlet.xml

这一点以及其他主题在Magnolia wiki中进行了描述

根据您想要获得的内容,您还可以使用Magnolia的REST模块。例如,要阅读网站的标题,您可以拨打
http://localhost:8080/magnoliaAuthor/.rest/properties/v1/website/demo-项目/网站标题
更多详细信息,请访问

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

嗯,,
Jan

Hi@sigget,我可以说得更清楚一些,因为我对开花很陌生。blossom中的模块描述符是什么?是*module.xml文件吗?如果我们在这里添加,那么下一步要做什么?如果您有任何示例,它将更有帮助。谢谢。是的,模块描述符是您的src/main/resources/META-INF/magnolia/.xml文件。更新后,需要重新安装模块。ajax-servlet.xml文件的内容是什么。在模块描述符中配置之后,我们如何编写特定于AJAX调用的控制器。如果我们可以通过ajax请求访问控制器,那么我们就可以编写一个简单的spring控制器。是否正确?ajax-servlet.xml将是一个普通的springbean定义xml文件。写控制器是普通的Spring样式。