У меня есть панель, которую я использую для отображения информации о местоположении.У меня есть страница, которую я использую для отображения информации о назначении доставки, которая включает два местоположения.Страница «Моя доставка» дважды включает панель «Расположение» - один раз для источника и один раз для пункта назначения.Этот пример был упрощен, поэтому у Location есть только одно свойство Name.
Вопрос:
Как лучше всего установить идентификатор разметки для имени (и другие свойства) обоих местоположений, сохраняя их уникальность?
Пример кода
LocationPanel.java
public class LocationPanel extends BasePanel {
public LocationPanel(String id, String locCode) {
super(id);
init(locCode);
}
private void init(String locCode) {
LocationInfo locModel = new LocationInfo(locCode + " Location");
CompoundPropertyModel model = new CompoundPropertyModel(locModel);
Label name = new Label("name");
setDefaultModel(model);
add(name);
}
}
LocationPanel.html
<html xmlns:wicket="http://wicket.apache.org">
<body>
<wicket:panel>
<h3><span wicket:id="name">SAMPLE location</span></h3>
</wicket:panel>
</body>
</html>
SetDeliveryAppointment.java
public class SetDeliveryAppointment extends BaseWebPage{
public SetDeliveryAppointment(String id) {
super(id);
init();
}
private void init() {
Panel origin = new RampLocationInformationPanel("origin", "LAX");
Panel dest = new RampLocationInformationPanel("dest", "DAL");
WebMarkupContainer delivery = new WebMarkupContainer("delivery");
delivery.add(origin);
delivery.add(dest);
add(delivery);
}
}
SetDeliveryAppointment.html
<html xmlns:wicket="http://wicket.apache.org">
<body>
<wicket:extend>
<wicket:container wicket:id="delivery">
<div wicket:id="origin"></div>
<div wicket:id="dest"></div>
</wicket:container>
</wicket:extend>
</body>
</html>
Цель:
Итак, что я хотел бы видеть в результирующем HTML, так это:
Окончательный вариант просмотра исходного кода HTML Цель
<html>
<body>
<div id="origin">
<!-- The exact id doesn't matter -->
<!-- as long as 'origin' and 'name' are contained in it -->
<h3><span id="origin_name">LAX location</span></h3>
</div>
<div id="dest">
<h3><span id="dest_name">DAL location</span></h3>
</div>
</body>
</html>
Бонус: Это действительно сквозная проблема.В идеале нам бы хотелось, чтобы каждый компонент Wicket получал уникальный идентификатор, но мы хотим, чтобы он был предсказуемым на основе предписанных нами правил.Идеальное решение могло бы решить эту проблему.
Отказ от ответственности: я новичок в Wicket, поэтому будьте спокойны, если это глупый вопрос