Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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 提取DIV';使用Sitemesh装饰器删除内容_Java_Jsp_Decorator_Sitemesh - Fatal编程技术网

Java 提取DIV';使用Sitemesh装饰器删除内容

Java 提取DIV';使用Sitemesh装饰器删除内容,java,jsp,decorator,sitemesh,Java,Jsp,Decorator,Sitemesh,我想知道如何使用decorators提取特定DIV的内容,而不是使用提取标签中的所有内容。NB Black Sensei在下面发布了一个更好的答案 我认为这是不可能的。Sitemesh是一个非常基本的模板系统,只有很少的标记-总共五个。这里有一个完整的清单 如果需要该级别的控制,您可能需要查看另一个模板系统。SiteMesh附带com.opensymphony.module.SiteMesh.multipass.DivExtractingPageParser。它的功能有限;它只提取正文下一层的d

我想知道如何使用decorators提取特定DIV的内容,而不是使用
提取
标签中的所有内容。

NB Black Sensei在下面发布了一个更好的答案

我认为这是不可能的。Sitemesh是一个非常基本的模板系统,只有很少的标记-总共五个。这里有一个完整的清单


如果需要该级别的控制,您可能需要查看另一个模板系统。

SiteMesh附带com.opensymphony.module.SiteMesh.multipass.DivExtractingPageParser。它的功能有限;它只提取正文下一层的div。

我正在使用的sitemesh版本2.4.2可能存在这种情况。找到了anwser,因此这里是我的
sitemesh.xml

<sitemesh>
  <property name="decorators-file" value="/WEB-INF/decorators.xml"/>
  <excludes file="${decorators-file}"/>

  <page-parsers>
    <parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser"/>
  </page-parsers>

  <page-parsers>
    <parser content-type="text/html" class="com.opensymphony.module.sitemesh.multipass.DivExtractingPageParser"/>
  </page-parsers>

  <decorator-mappers>
    <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
        <param name="config" value="${decorators-file}"/>
    </mapper>
  </decorator-mappers>
</sitemesh>

下面是我的mainlayout.jsp的一个片段

  <div id="container" style=" padding-top: 60px; ">
            <div id="leftbar">

                <div style="height:400px;">
                    <img src="<spring:url value='/images/Logo.png'/>" class="logo"/>
                </div>

                <decorator:getProperty property="div.side-menu"/>
                <%--<decorator:body />--%>
            </div>
            <div>
                <decorator:getProperty property="div.top"  />
            </div>
            <div>
                <decorator:getProperty property="div.content"  />
            </div>
        </div>

“class=”logo“/>
home.ftl的片段(使用freemarker)


  • “alt=”“class=”幻灯片图像“/> ?src=&;w=100&;h=42&;zc=1“ alt=”“class=“幻灯片缩略图”/>

如果还不算太晚的话,我希望这可以让您继续:D实际上不是一个sitemesh解决方案,但是如果您希望它运行得非常快,您可以使用jQuery这样的
$(document).ready(function(){$(“#internal div”).prependTo(“#content wrapper”)})这是不对的。你应该用
DivExtractingPageParser
替换
HtmlPageParser
。否则会发生奇怪的事情。注意,你的XML格式不好,不应该有两个
部分。这是一件好事……否则sitemesh会弄乱任何有id的div。用另一个div包装一个div没有身份证可以保护它。
<div id="side-menu">
  <ul>
    <li class="current"><a href="/home">All</a></li>
      <#list genre as gen >
        <li><a href="/category?cat=${gen}">${gen}</a></li>
     </#list>
</ul>
</div>


<div id="top">
  <ul id="slider" class="architectorSlider">
     <li>
        <img src="<@spring.url '/images/slide_1.jpg'/>" alt="" class="slide-image"/>
        <img src="<@spring.url '/images/slider/timthumbf014.jpg'/>?src=<@spring.url '/images/slide_1.jpg' />&amp;w=100&amp;h=42&amp;zc=1"
             alt="" class="slide-thumbnail"/>
    </li>
  </ul>
 </div>