我是Magnolia Blossom的新手。
我必须在Blossom中的应用程序中执行AJAX
调用。
我们每个组件都有一个控制器。所以我无法提出AJAX
请求。
任何人都可以建议我如何实现这一目标?
答案 0 :(得分:0)
您可以定义一个不同的Servlet(和Web应用程序上下文),您可以定义一个servlet来处理所有以/ rest / *开头的请求,然后在web.xml下面的那个请求中定义开花servlet。 所有其余的都是配置,尝试了解如何创建具有2个不同上下文的webapp。
答案 1 :(得分:0)
进入servlet容器的请求无法访问您用于呈现内容的控制器。如果没有内容,他们就会毫无用处,并且不会产生有意义的输出。您需要一个单独的DispatcherServlet来处理这些AJAX请求。
实现这一目标有两种方法。您可以将新的DispatcherServlet添加到web.xml,也可以将servlet添加到安装模块时安装的模块。
后者是更好的选择,因为您不需要拥有两个单独的ApplicationContexts。在启动时在模块中创建的那个将是两个DispatcherServlet的父级,因此两者都可以访问其中的bean。您还不需要更新web.xml,这使得模块安装更容易,并且Magnolia的升级更容易。
在您的模块描述符中添加以下代码段:
<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维基https://wiki.magnolia-cms.com/display/WIKI/Adding+a+DispatcherServlet+to+a+Blossom+module
中有所描述答案 2 :(得分:0)
根据您想要的内容,您还可以使用Magnolia的REST模块。例如,阅读网站标题,您可以在documentation
致电http://localhost:8080/magnoliaAuthor/.rest/properties/v1/website/demo-project/siteTitle
了解更多详情
您可以使用REST模块通过仅注释源代码来轻松添加自己的端点。
HTH, 扬