나는 Wicket 7.3 및 JQuery 2.1.4에 다음과 같은 문제가있다.Wicket Ajax TabbedPanel에서 언제 getString()을 사용할 수 있습니까?
동적 탭 패널 (탭 추가 및 제거)에서는 탭 제목을 현지화하고 툴팁을 추가하려고한다. 내 코드 로그 파일에 경고의
JQueryGenericPanel() {
....
populateItem(ListItem<ITab> item) {
getString();
결과 : 아직 페이지에 추가되지 않은 구성 요소에 대한 지역화 된 문자열을 검색하기 위해 시도
. 이로 인해 때때로 지역화 된 자원이 유효하지 않거나 전혀 반환되지 않을 수 있습니다. 확인 당신이 있기 때문에,
이onInitialize()
이 작동하지 않는 의 방법에서 (탭에) 패널의에는 getString()를 사용하여 구성 요소의 생성자
내부 구성 요소 #의에는 getString()를 호출하고 있지 않은지 확인 너무 늦었 어. 레이블은 이미 "게으른"것으로 설정되었습니다.
내가 사용할 수있는 "populateItem()"과 유사한 다른 방법이 있습니까?
** 부록은 ** 탭이 패널에 대한 코드는 다음과 같습니다
public class MyTabbedPanel extends JQueryGenericPanel<List<ITab>> implements ITabsListener {
...
@Override
protected void onInitialize() {
super.onInitialize();
this.add(new ListView<ITab>("tabs", this.getModel()) {
...
@Override
protected void populateItem(ListItem<ITab> item) {
Label link = new Label("widgetId", new PropertyModel<String>(somePanel, "getTitle()"));
패널의 코드는
: 그래서 PropertyModel가 된 getTitle '로 제목을 가져
private String title = "default";
public String getTitle() { return title; }
@Override
public void onInitialize() {
title = getString("someKey");
}
() '. 불행히도 이것은 onInitialize()가 호출되기 전에 발생합니다. 따라서 탭 제목은 "someKey"에 대한 지역화 된 텍스트 대신 "기본값"을 표시합니다. 대신
new Label(itemId, getString("key"))
의
'새로운 PropertyModel을 (somePanel , "getTitle()"))'이 이상하게 보입니다. '새로운 PropertyModel (somePanel, "title"))'을 대신 사용하십시오. –