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
Spring 使用put属性时使用Apache Tiles 3的StackOverflowError_Spring_Jsp_Spring Mvc_Spring Webflow_Apache Tiles - Fatal编程技术网

Spring 使用put属性时使用Apache Tiles 3的StackOverflowError

Spring 使用put属性时使用Apache Tiles 3的StackOverflowError,spring,jsp,spring-mvc,spring-webflow,apache-tiles,Spring,Jsp,Spring Mvc,Spring Webflow,Apache Tiles,我在使用ApacheTiles 3.0.5解析视图时遇到了StackOverflower错误。堆栈跟踪: java.lang.StackOverflowError java.util.regex.Pattern.atom(Pattern.java:2220) java.util.regex.Pattern.sequence(Pattern.java:2130) java.util.regex.Pattern.expr(Pattern.java:1996) java.util.regex.Patt

我在使用ApacheTiles 3.0.5解析视图时遇到了StackOverflower错误。堆栈跟踪:

java.lang.StackOverflowError
java.util.regex.Pattern.atom(Pattern.java:2220)
java.util.regex.Pattern.sequence(Pattern.java:2130)
java.util.regex.Pattern.expr(Pattern.java:1996)
java.util.regex.Pattern.compile(Pattern.java:1696)
java.util.regex.Pattern.<init>(Pattern.java:1351)
java.util.regex.Pattern.compile(Pattern.java:1028)
java.lang.String.replaceAll(String.java:2210)
org.apache.tiles.definition.pattern.PatternUtil.replace(PatternUtil.java:225)
org.apache.tiles.definition.pattern.PatternUtil.replaceVarsInSimpleAttribute(PatternUtil.java:177)
org.apache.tiles.definition.pattern.PatternUtil.replaceVarsInAttribute(PatternUtil.java:147)
org.apache.tiles.definition.pattern.PatternUtil.replacePlaceholders(PatternUtil.java:94)
org.apache.tiles.definition.pattern.wildcard.WildcardDefinitionPatternMatcher.createDefinition(WildcardDefinitionPatternMatcher.java:78)
org.apache.tiles.definition.pattern.AbstractPatternDefinitionResolver.searchAndResolveDefinition(AbstractPatternDefinitionResolver.java:101)
org.apache.tiles.definition.pattern.AbstractPatternDefinitionResolver.resolveDefinition(AbstractPatternDefinitionResolver.java:54)
org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getDefinitionFromResolver(CachingLocaleUrlDefinitionDAO.java:157)
org.apache.tiles.definition.dao.ResolvingLocaleUrlDefinitionDAO.getDefinitionFromResolver(ResolvingLocaleUrlDefinitionDAO.java:81)
org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getDefinition(CachingLocaleUrlDefinitionDAO.java:110)
org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getDefinition(CachingLocaleUrlDefinitionDAO.java:49)
org.apache.tiles.definition.UnresolvingLocaleDefinitionsFactory.getDefinition(UnresolvingLocaleDefinitionsFactory.java:89)
org.apache.tiles.impl.BasicTilesContainer.getDefinition(BasicTilesContainer.java:286)
org.apache.tiles.impl.BasicTilesContainer.isValidDefinition(BasicTilesContainer.java:273)
org.springframework.js.ajax.tiles3.AjaxTilesView.flattenAttributeMap(AjaxTilesView.java:161)
org.springframework.js.ajax.tiles3.AjaxTilesView.flattenAttributeMap(AjaxTilesView.java:165)
org.springframework.js.ajax.tiles3.AjaxTilesView.flattenAttributeMap(AjaxTilesView.java:165)....
java.lang.StackOverflower错误
atom(Pattern.java:2220)
sequence(Pattern.java:2130)
expr(Pattern.java:1996)
compile(Pattern.java:1696)
Pattern.(Pattern.java:1351)
compile(Pattern.java:1028)
java.lang.String.replaceAll(String.java:2210)
org.apache.tiles.definition.pattern.PatternUtil.replace(PatternUtil.java:225)
org.apache.tiles.definition.pattern.PatternUtil.replaceVarsInSimpleAttribute(PatternUtil.java:177)
org.apache.tiles.definition.pattern.PatternUtil.replaceVarsInAttribute(PatternUtil.java:147)
org.apache.tiles.definition.pattern.PatternUtil.replacep占位符(PatternUtil.java:94)
org.apache.tiles.definition.pattern.wildcard.WildcardDefinitionPatternMatcher.createDefinition(WildcardDefinitionPatternMatcher.java:78)
org.apache.tiles.definition.pattern.AbstractPatternDefinitionResolver.searchAndResolveDefinition(AbstractPatternDefinitionResolver.java:101)
org.apache.tiles.definition.pattern.AbstractPatternDefinitionResolver.resolveDefinition(AbstractPatternDefinitionResolver.java:54)
org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getdefinitionfromsolver(CachingLocaleUrlDefinitionDAO.java:157)
org.apache.tiles.definition.dao.ResolvingLocaleUrlDefinitionDAO.getdefinitionfromsolver(ResolvingLocaleUrlDefinitionDAO.java:81)
org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getDefinition(CachingLocaleUrlDefinitionDAO.java:110)
org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.getDefinition(CachingLocaleUrlDefinitionDAO.java:49)
org.apache.tiles.definition.unsolvingLocaleDefinitionsFactory.getDefinition(unsolvingLocaleDefinitionsFactory.java:89)
org.apache.tiles.impl.BasicTilesContainer.getDefinition(BasicTilesContainer.java:286)
org.apache.tiles.impl.BasicTilesContainer.isValidDefinition(BasicTilesContainer.java:273)
org.springframework.js.ajax.tiles3.AjaxTilesView.flattattributemap(AjaxTilesView.java:161)
org.springframework.js.ajax.tiles3.AjaxTilesView.flattattributemap(AjaxTilesView.java:165)
org.springframework.js.ajax.tiles3.AjaxTilesView.flattAttributeMap(AjaxTilesView.java:165)。。。。
我从调试AjaxTilesView中发现,tiles正在寻找参数“title”,并进入无限循环。他找到Select Books,然后查找Select Books.title,然后选择Books.title.title等等(在属性映射中)

我的瓷砖配置:

<definition name="template" template="/WEB-INF/templates/template.jsp">
    <put-attribute name="header" value="/WEB-INF/templates/header.jsp" />
    <put-attribute name="footer" value="/WEB-INF/templates/footer.jsp" />
</definition>
<definition name="*" extends="template">
    <put-attribute name="title" value="{1}.title" />
    <put-attribute name="body" value="/WEB-INF/views/{1}.jsp" />
</definition>
<definition name="*/*" extends="template">
    <put-attribute name="title" value="{1}.{2}/title" />
    <put-attribute name="body" value="/WEB-INF/views/{1}/{2}.jsp" />
</definition>
<definition name="selectBooks" extends="template">
    <put-attribute name="title" value="Select books" />
    <put-attribute name="body" value="show.selected.books" />
</definition>
<definition name="show.selected.books"
    template="/WEB-INF/views/createOrders/selectBooks.jsp">
    <put-attribute name="selectedBooks"
        value="/WEB-INF/views/createOrders/showSelectedBooks.jsp" />
</definition>


我之所以使用“selectedBooks”,是因为我使用ajax(带webflow的SpringJS)只渲染页面片段。我会感谢所有能够解决此问题的人。

我发现这是因为“show.selected.books”默认继承了定义匹配的正则表达式“”,所以我认为我应该更改“”模式,但如何更改?我不确定,但这可能与您的问题有关。我发现这是因为默认情况下“show.selected.books”继承了定义匹配的正则表达式“”,所以我认为应该更改“”模式,但如何更改?我不确定,但这可能与您的问题有关。