2017-10-27 5 views
0

사용자 정보가있는 데이터베이스와 사용자 이름을 링크로 표시하려는 페이지가 있습니다. Im Wicket에 새로운 그래서 나는 동적으로 내가 신경 쓰는 마크 업을 추가하는 방법을 모른다.Wicket의 각 데이터베이스 항목에 대한 새 링크 추가

for (String str : list) 
{ 
    String s = id + "" + x; 
    String temp = "link" + x; 

    divSb.append("<div id=\""); 
    divSb.append(s); 
    divSb.append("\">"); 
    divSb.append("<a href=\"\" "); 
    divSb.append("wicket:id=\""); 
    divSb.append(temp + "\">"); 
    divSb.append(str); 
    divSb.append("</a>"); 
    divSb.append("</div>"); 
    divSb.append("\n"); 

    x++; 
} 

x = 0; 

Label divLabel = new Label("divLabel", divSb.toString()); 
divLabel.setEscapeModelStrings(false); 
System.out.println(divSb.toString()); 
add(divLabel); 

하지만 난이 생성되는 개찰구 아이디에 대한 링크를 추가하려고하면, 그것은 작동하지 않습니다 : 나는 이미 라벨로를 작성하고 난 내 페이지에서 사용하는 패널에이 라벨을 추가하려고 페이지가 올바르게 렌더링되고 생성 된 HTML 소스 코드가 올바르더라도. 여기

+5

정말 개찰구를 어떻게 사용해야하는지는 아닙니다. html 마크 업을 문자열로 만든 다음 레이블을 사용하여 해당 문자열을 표시하지 마십시오. List에서 동적 구성 요소를 만들려면 ListView와 같은 반복되는 wickets 중 하나를 사용해야합니다. https://ci.apache.org/projects/wicket/guide/6.x/guide/repeaters.html -보다 복잡한 동적 표시 데이터베이스의 데이터는 [DataTable] (https://ci.apache.org/projects/wicket/apidocs/6.x/org/apache/wicket/extensions/markup/html/repeater/data/table)을 사용하는 것이 좋습니다. /DataTable.html). 하지만 귀하의 경우에는 간단한 ListView가 아마도 괜찮을 것입니다. –

+0

고마워요! 나는 그것을 가능한 한 빨리 점검 할 것이다. 내가 말했듯이, completly 개찰에 새로운, 끔찍한 접근에 대해 유감 –

답변

0

이것을 달성하는 방법의 예 : Java 클래스에서

:

// in your form or page constructor 
ListView namesComponent = new ListView<String>("names", yourList) { 
    @Override 
    protected void populateItem(ListItem<String> item) { 
     item.add(new Label("name", item.getModel())); 
    } 
}; 
add(namesComponent); 

HTML에서 : ListView에 항목 here에 대한

<div wicket:id="names"> 
    <div wicket:id="name"></div> 
</div> 

더 많은 정보를 원하시면.

희망이 있습니다.