2013-12-16 50 views
0

彈簧模型:Thymeleaf +彈簧獨立的輸入存儲到一個數組

@Service 
public class Test { 
    private List<String> keyphrases; 
} 

Thymeleaf HTML:

<form role="form" action="#" method="post" th:object="${test} th:action="@{/test}"> 
    <div class="form-group"> 
     <label for="words" class="control-label">Keyphrases</label> 
     <textarea type="text" class="form-control" id="keyphrases" placeholder="Zoektermen" th:field="*{keyphrases}"/> 
    </div> 
    <div class="form-group"> 
     <button type="submit" class="btn btn-primary pull-right" name="add"> 
      Go 
     </button> 
    </div> 
</form> 

在textarea的詞語將被分別加入到模型中的陣列中,如果它們用逗號(,)分隔。

但是,我想使用其他分隔符如「;」,「:」和一個新行。我怎樣才能做到這一點?

+0

這是有點難以理解的問題...你有任何問題,以填補textarea或發送的米到服務器? – tduchateau

+0

不,沒有任何問題。我試圖找出如何分離在textarea中輸入的單詞。默認情況下,你會看到,將被視爲分隔符。但是用我的答案,可以存儲用所示符號分隔的每個單詞 – user1275645

回答

0

我有解決方案:

使實現轉換

一個新的類,然後添加這個方法

List<String> result = new ArrayList<String>(); 
    for (String part : source.split("[\n\t:;,]")) {    
     if (!part.trim().isEmpty()) { 
      result.add(part.trim()); 
     } 
    } 
    return result; 

再加入這個彈簧的servlet:

<mvc:annotation-driven conversion-service="conversionService"/> 
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> 
    <property name="converters"> 
     <list> 
      <bean class="YOUR.PACKAGE.TextAreaSetConverter" /> 
     </list> 
    </property> 
</bean>