无法获得子串xwiki

时间:2013-08-20 09:29:23

标签: velocity xwiki

我正在尝试获取子字符串,但我得到了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)}"),我就不会再收到错误了,当然它不起作用。

1 个答案:

答案 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 textextracting a prefix或{{3}具有防错方法等等。