2013-08-20 4 views
0

하위 문자열을 가져 오려고하는데 Failed to execute the [velocity] macro이 표시됩니다. 왜 이런 일이 일어나는지 모르겠습니다. 내가 선 #set ($textwo = "${text.substring(0,4)}")를 제거하면하위 문자열 xwiki를 가져올 수 없습니다.

#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 

, 나는 더 이상 오류가 발생 해달라고 당연히 작동하지 않습니다 여기 내 코드입니다.

답변

0

// Failed to ... 오류 메시지를 클릭하면 확장되어 전체 스택 추적을 표시합니다. 당신은 아마 오류의 진짜 원인임을 확인할 수있는 것들 :

을에 의해 발생 : java.lang.StringIndexOutOfBoundsException : 문자열의 인덱스 범위를 벗어 : 4

입력 문자열이 짧은 것을 의미합니다 4 자 이상.

$text은 무엇입니까? 왜 처음 네 글자 만 지키고 있니? #if ($text.startsWith('Tags'))가 동등한 체크일까요? 당신은 또한 실제로 StringUtils from Apache Commons Lang 3입니다 $stringtool을 사용할 수 있습니다 XWiki에서

하고, 이는 다른 사람의 사이에서 extracting a piece of text, 또는 extracting a prefix, 또는 checking for a prefix에 대한 오류 방지 방법을 가지고 있습니다.

+0

회신 해 주셔서 감사 드리며 늦게 답변을 드려 죄송합니다. 귀하의 질문에 대답하기 위해, $ text = 귀하의 두 번째 질문에 대답하기 위해 상자에 입력 한 검색 텍스트입니다 [link] (http://stackoverflow.com/questions/18328871/pass-button-value-using)로 안내합니다. -javascript-and-make-it-use-xwiki-macro), 자바 스크립트에서 데이터를 직접 속도로 보낼 수 없기 때문에 (감사합니다), 자바 스크립트를 사용하여'$ text'를 제 문제에 대한 해결책과 세 번째 문제에 대한 해결책입니다. 그렇습니다.하지만 그것이 작동하지는 않을 것입니다. – nupac

+0

(나는이 두 번째 코멘트에서 계속해야했다, 아무 특성도 남겨 두지 않았다) 이렇게 나의 초기 문제는이었다 [link] (http://stackoverflow.com/questions/18199962/xwiki-search-documents-using-tags), 나는 자바 스크립트를 사용했다 검색 텍스트를 조작 한 다음 조작을 확인하십시오. 존재하는 경우 키워드를 검색하지 않은 경우 태그가있는 문서를 표시하십시오. 지금은 작동하지만 더 좋은 아이디어가 있으면 공유하십시오. 감사 – nupac

관련 문제