Я новичок в калитки, попытаюсь понять некоторые примеры. Один из примеров, которые я пробовал, - это navomatic. Чистый пример работает на моей локальной установке, следующим шагом я хотел бы расширить его до примера приложения. Поэтому я ставлю на «страницу» простую форму.Wicket wicket: идентификатор наследования - как?
Но что я теперь получить это исключение, как:
Last cause: Unable to find component with id 'form' in [BorderBodyContainer [Component id = navomaticBorder_body]]
Expected: 'navomaticBorder:bodyBorder:navomaticBorder_body:form'.
Found with similar names: 'form'
Вот мой код: NavomaticBorder.java
public class NavomaticBorder extends Border {
public NavomaticBorder(final String id) {
super(id);
addToBorder(new MyBorder("navigationBorder"));
addToBorder(new MyBorder("bodyBorder"));
}
}
NavomaticBorder.html:
<html xmlns:wicket="http://wicket.apache.org">
<head>
<link rel="stylesheet" type="text/css" href="layout.css" />
</head>
<body>
<wicket:border>
<div id="main">
<div id="left_nav">
<span wicket:id="navigationBorder">
<wicket:link>
<a href="MyDataPage.html">My Data</a>
</wicket:link>
</span>
</div>
<div id="content_area">
<span wicket:id="bodyBorder">
<wicket:body />
</span>
</div>
</div>
</wicket:border>
</body>
</html>
MyDataPage. java:
public class MyDataPage extends WebPage {
public MyDataPage() {
add(new NavomaticBorder("navomaticBorder"));
// This model references the page's message property and is
// shared by the label and form component
final PropertyModel<String> messageModel = new PropertyModel<>(this, "message");
// The label displays the currently set message
add(new Label("msg", messageModel));
// Add a form to change the message. We don't need to do anything
// else with this form as the shared model is automatically updated
// on form submits
final Form<?> form = new Form("form");
form.add(new TextField("msgInput", messageModel));
add(form);
}
}
и, наконец, MyDataPage.html:
<html xmlns:wicket="http://wicket.apache.org">
<head>
<link rel="stylesheet" type="text/css" href="layout.css" />
</head>
<body>
<!-- <div wicket:id = "mainNavigation"></div> -->
<div wicket:id = "navomaticBorder">
<div>
<h3>My Data</h3>
</div>
<div>
<form wicket:id="form">
<input type="text" wicket:id="msgInput" value="" size="50" />
<input type="submit" value="set message" />
</form>
<span wicket:id="msg" id="msg">Message goes here</span>
</div>
</div>
Я предполагаю, что это проблема Наследование, но я не уверен, как решить. Может ли кто-нибудь дать мне подсказку?
благодарит
Привет, yeahhh, что была проблема. Это так просто и понятно, что я должен просто добавить компонент к компоненту Border. Огромное спасибо! – piet