apache tiles:表达式语言已停止与maven一起使用

时间:2013-02-20 21:34:05

标签: jsp maven el tiles

我有一个spring-3.2.1 / tiles-3.0.1项目,我的表达语言使用了tile。这意味着${jukebox.name}等表达式在tile属性表达式中起作用(例如打印Metal Jukebox)。这是我的tiles.xml文件:

<definition name="t.jukebox" extends="t.base">
    <put-attribute name="body" value="/WEB-INF/jsp/jukebox.jsp"/>
    <put-attribute name="title" expression="${jukebox.name} - lyricsBase"/>
</definition>

<definition name="t.song" extends="t.base">
    <put-attribute name="body" value="/WEB-INF/jsp/song.jsp"/>
    <put-attribute name="title" expression="${song.title} - ${song.author} in ${jukebox.name}"/>
</definition>

<definition name="t.static/about" extends="t.base">
    <put-attribute name="body" value="/WEB-INF/static/about.jsp"/>
    <put-attribute name="title" value="lyricsBase: about"/>
</definition>

我的控制器如下所示 - 一个对象被传递给布局,它有一些特定的getter方法(例如getName()):

public ModelAndView handleRequest(
        HttpServletRequest httpServletRequest,
        HttpServletResponse httpServletResponse) throws Exception {
    return new ModelAndView("t.jukebox", "jukebox", facade);
}

一切都很好。最近,我决定搬到maven。完成所有工作后,修复所有依赖项并构建成功,我丢失了动态切片表达式功能,但我找不到原因。有人建议添加

<%@ page isELIgnored="false" %>

到页面,但我不知道到底在哪里。基础瓷砖布局还是孩子?我有一个include.jsp,包含在所有jsp文件中,我有所有taglib,但添加elignored=false没有帮助。

Maven很可能与这一切无关,我只是不知道在哪里寻找解决方案。

1 个答案:

答案 0 :(得分:1)

嗯,这与maven有关。我忘了在tiles-el.jar上添加依赖项。但是没有抛出任何例外 - 这使得很难发现问题。感谢another post