Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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
Java <;jsp:include>;不';我不在木兰花工作_Java_Spring_Jsp_Content Management System_Magnolia - Fatal编程技术网

Java <;jsp:include>;不';我不在木兰花工作

Java <;jsp:include>;不';我不在木兰花工作,java,spring,jsp,content-management-system,magnolia,Java,Spring,Jsp,Content Management System,Magnolia,我有一个将Magnolia cms与Spring mvc集成的项目。SpringServlet在magnolia中作为模块加载,并分配模式/web/*。servlet是在模块描述符中定义的,因此web.xml文件中没有servlet定义,只有定义的magnolia过滤器链 我遇到的问题是,当我尝试以下代码时 <jsp:include path="/web/header" /> 以下是我在blossom的模块描述符中定义spring servlet的方式: <servl

我有一个将Magnolia cms与Spring mvc集成的项目。SpringServlet在magnolia中作为模块加载,并分配模式
/web/*
。servlet是在模块描述符中定义的,因此web.xml文件中没有servlet定义,只有定义的magnolia过滤器链

我遇到的问题是,当我尝试以下代码时

<jsp:include path="/web/header" />
以下是我在blossom的模块描述符中定义spring servlet的方式:

    <servlets>
        <servlet>
            <name>Spring Servlet</name>
            <class>info.magnolia.module.blossom.web.InstallationAwareDispatcherServlet</class>
            <comment>Used for spring as dispatcher servlet</comment>
            <mappings>
                <mapping>/web/*</mapping>
            </mappings>
            <params>
                <param>
                    <name>contextConfigLocation</name>
                    <value>/WEB-INF/spring/appServlet/servlet-context.xml</value>
                </param>
            </params>
        </servlet>
    </servlets>

我希望这有帮助。。非常感谢:)

默认情况下,Magnolia过滤器链中的大多数过滤器不处理Include。当然,在您的情况下,让servlet接受包含是有意义的。您可以通过在/server/filters/servlet/[yourservlet]中更改servlet上的分派规则来启用此功能

将/server/filters/dispatching复制到/server/filters/servlet/[yourservlet],并将dispatching/include/tomagoniaresource设置为true


Magnolia将请求分类为目标Magnolia资源或web容器资源,并且过滤器以不同的方式处理它们。它们的分类配置在/server/webContainerResources中,所有与规则不匹配的内容都有一个magnolia资源。

默认情况下,magnolia筛选器链中的大多数筛选器不处理Include。当然,在您的情况下,让servlet接受包含是有意义的。您可以通过在/server/filters/servlet/[yourservlet]中更改servlet上的分派规则来启用此功能

将/server/filters/dispatching复制到/server/filters/servlet/[yourservlet],并将dispatching/include/tomagoniaresource设置为true


Magnolia将请求分类为目标Magnolia资源或web容器资源,并且过滤器以不同的方式处理它们。它们的分类配置在/server/webContainerResources中,所有与规则不匹配的内容都有一个magnolia资源。

我已经按照你说的做了,但仍然不起作用。我认为代码仍然是在本地上下文中搜索的,我认为没有对过滤器链提出任何请求,因此没有达到您刚才所说的更改。如果我将servlet定义和映射放在web.xml中,我不理解为什么它会起作用,但是如果我删除它,它就不能与过滤器链一起工作。你在web.xml中的过滤器上有包含吗?它最晚是在4.4版本添加的。我已经用代码示例更新了我的帖子。我希望这会有帮助。。谢谢:)我已经照你说的做了,但还是不行。我认为代码仍然是在本地上下文中搜索的,我认为没有对过滤器链提出任何请求,因此没有达到您刚才所说的更改。如果我将servlet定义和映射放在web.xml中,我不理解为什么它会起作用,但是如果我删除它,它就不能与过滤器链一起工作。你在web.xml中的过滤器上有包含吗?它最晚是在4.4版本添加的。我已经用代码示例更新了我的帖子。我希望这会有帮助。。谢谢:)
    <servlets>
        <servlet>
            <name>Spring Servlet</name>
            <class>info.magnolia.module.blossom.web.InstallationAwareDispatcherServlet</class>
            <comment>Used for spring as dispatcher servlet</comment>
            <mappings>
                <mapping>/web/*</mapping>
            </mappings>
            <params>
                <param>
                    <name>contextConfigLocation</name>
                    <value>/WEB-INF/spring/appServlet/servlet-context.xml</value>
                </param>
            </params>
        </servlet>
    </servlets>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
                <title>${content.title}</title>
    </head>

    <body>

        <jsp:include page="/web/header" />

    </body>
</html>
    <servlet>
        <servlet-name>Spring Servlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Spring Servlet</servlet-name>
        <url-pattern>/web/*</url-pattern>
    </servlet-mapping>