2013-08-27 49 views
0

我有這個模板,下面的代碼生成在我的web應用程序中的「標籤」作爲樣本輸出inidicated:插入逗號部件

模板:

<p class="tag" data-field="tags">Tags: 
</p> 

Java代碼:

@DataField 
DivElement tags = DOM.createElement("p").cast(); 

@Override 
public void setModel(MyModel model) { 
    binder.setModel(model, InitialState.FROM_MODEL); 
    for (String tag : model.getTags()){ 
     Anchor a = new Anchor(); 
     a.setText(tag); 
     a.setHref("#Tags?id=" + tag); 
     tags.appendChild(a.getElement()); 
     Label comma = new Label(","); 
     tags.appendChild(comma.getElement()); 
    } 
} 

HTML輸出(瀏覽器):

<p data-field="tags" class="tag">Tags: 

<a class="gwt-Anchor" href="#Tags?id=test">test</a> 
<div class="gwt-Label">,</div> 
<a class="gwt-Anchor" href="#Tags?id=tagg">tagg</a> 
<div class="gwt-Label">,</div> 
<a class="gwt-Anchor" href="#Tags?id=new">new</a> 
<div class="gwt-Label">,</div> 
</p> 

我現在面臨的問題是,從瀏覽器中運行時的HTML輸出應該是這樣的:

<p data-field="tags" class="tag">Tags: 

<a class="gwt-Anchor" href="#Tags?id=test">test</a>, 
<a class="gwt-Anchor" href="#Tags?id=tagg">tagg</a>, 
<a class="gwt-Anchor" href="#Tags?id=new">new</a> 
</p> 

而且在追加的孩子,而不是

之間
+0

@ tech-idiot如果div標籤存在,所有的標籤都會換行,這是不可取的。 – Kaushik

回答

1

而不是

Label comma = new Label(","); 
tags.appendChild(comma.getElement()); 

使用

tags.setInnerHTML(tags.getInnerHTML() + ","); 
+0

這工作,只是最後一個標籤也有一個「,」逗號也 – xybrek

0

不能創造gwt-label DIV嘗試

tags.appendData(","); 
+0

Element類中沒有appendData方法。 – Kaushik

+0

哦,我在想字符數據fpasmh! – chiliNUT

0

我建議使用SafeHTML。 SafeHTML templates也可以讓你的代碼更簡單。

public interface MyTemplate extends SafeHtmlTemplates { 
    @Template("<a class=\"gwt-Anchor\" href=\"#Tags?id={0}\">{1}</a>{2}") 
    SafeHtml getTag(String url, String text, String comma); 
} 

(最後一個參數「逗號」可以是「,」或「」)。