我正在尝试获取子字符串,但我得到了Failed to execute the [velocity] macro
。我不知道为什么会这样。这是我的代码:
#if ($text != '' )
#set ($textwo = "${text.substring(0,4)}")
if($textwo != "Tags" )
#getSearchResults()
(% class="search-results-container" %)(((
#displaySearchFacets($searchResponse)
(% class="search-results-left" %)(((
#displaySearchResultsSort()
#displaySearchResults()
)))
)))
#end
#if ($textwo == 'Tags')
#getTaggedResult
#end
#end
如果我删除了行#set ($textwo = "${text.substring(0,4)}")
,我就不会再收到错误了,当然它不起作用。
答案 0 :(得分:0)
如果单击// Failed to ... //错误消息,它将展开以显示完整的堆栈跟踪。您可能会发现错误的真正原因是:
引起:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:4
这意味着输入字符串短于4个字符。
$text
应该是什么?你为什么只保留前四个字符? #if ($text.startsWith('Tags'))
会成为同等的支票吗?
在XWiki中,您还可以使用$stringtool,实际上是StringUtils from Apache Commons Lang 3,并且extracting a piece of text或extracting a prefix或{{3}具有防错方法等等。