2011-04-06 83 views
2

只要JSPX必须是一个格式良好的XML,就没有办法在独立的包含文件中包含标记的beginig,因为它必须关闭。JSPX导致复制粘贴代码?

看起来您必须始终包含在所有主页中? 还是我想念什么?

回答

2

Apache Tiles据说解决了这个问题,它允许您对JSPX组件进行模板化和重用。

更新答案:

在你views.xml,你会像下面这样:

<definition extends="error" name="dataAccessFailure"> 
    <put-attribute name="body" value="/WEB-INF/views/dataAccessFailure.jspx"/> 
</definition> 

<definition extends="default" name="index"> 
    <put-attribute name="body" value="/WEB-INF/views/body/index.jspx"/> 
    <put-attribute name="side" value="/WEB-INF/views/side/index.jspx"/> 
</definition> 

错误和默认的是我在布局目录定义的布局,错误是单列布局,默认为两列布局。

在布局目录

也就是layouts.xml:

<tiles-definitions> 

    <definition name="default" template="/WEB-INF/layouts/default.jspx"> 
     <put-attribute name="header" value="/WEB-INF/views/header.jspx" /> 
     <put-attribute name="menu" value="/WEB-INF/views/navigation.jspx" /> 
     <put-attribute name="footer" value="/WEB-INF/views/footer.jspx" /> 
    </definition> 

    <definition name="error" template="/WEB-INF/layouts/error.jspx"> 
     <put-attribute name="header" value="/WEB-INF/views/header.jspx" /> 
     <put-attribute name="menu" value="/WEB-INF/views/navigation.jspx" /> 
     <put-attribute name="footer" value="/WEB-INF/views/footer.jspx" /> 
    </definition> 

</tiles-definitions> 

我没有亲自手工完成阿帕奇砖的整合,我只是用Spring Roo的生成一个完整的堆栈我,然后添加/根据需要删除东西。

+0

谢谢你的回答,非常感谢你,请给我一个例子,告诉我如何才能做到这一点,只需在单独的文件中打开标签? – Artem 2011-04-24 17:52:05

+0

我用一些基本的瓷砖代码更新了答案。 每个文件都需要有效的XML,与PHP不同的是,您可以在不同的文件中打开html标签。 – 2011-04-25 13:32:24

+0

因此,基本上,您确认了我最糟糕的期望:如果我想在一个文件中打开标签并在另一个文件中关闭(如用于html标签),我将不得不选择JSP而不是JSPX?我帮你解决了吗? – Artem 2011-05-05 00:25:40