Имам малък проблем с моето приложение за wicket.
Проблемът е в страница, наречена OverviewPage, тук има някои панели като ListPanel, в който е моят RepeatingView.
Този RepeatingView (списък) има някои елементи с бутон за всеки елемент, ако натисна бутона, ще бъда пренасочен към друга страница (RegistrationPage) и някои промени в RepeatingView (списък) са направени.
Ако сега навигирам обратно към OverviewPage с RepeatingView (списък), списъкът е точно същият като преди. Направих промени в елементите от списъка, но те не се виждат. (Не натиснах бутона за връщане назад на браузъра, щракнах върху връзка от моята навигация)
Знам, че случаите на уикет страници продължават през сесията. Мога ли да кажа на wicket да изобрази отново тази страница/списък? какви възможности има? може ли някой
Благодаря
РЕДАКТИРАНЕ:
Следва панелът, който съдържа RepeatingView:
/**
*
* Constructor...
*
* @param id
*/
public ServiceListPanel(String id) {
super(id);
RepeatingView repeating = new RepeatingView("repeating");
add(repeating);
int index = 0;
// add all services to the list
for (Service service : databaseService.getAllServices()) {
AbstractItem item = new AbstractItem(repeating.newChildId());
repeating.add(item);
item.add(new ActionPanel("actions", new Model<Service>(service)));
item.add(new Label("name", service.getName()));
item.add(new Label("description", service.getDescription()));
item.add(new Label("country", service.getCountry()));
final int idx = index;
item.add(AttributeModifier.replace("class", new AbstractReadOnlyModel<String>() {
private static final long serialVersionUID = 1L;
@Override
public String getObject() {
return (idx % 2 == 1) ? "even" : "odd";
}
}));
index++;
}
}
Следващият е ActionPanel, където трябва да се случат промените:
/**
*
* Constructor...
*
* @param id
* @param model
*/
public ActionPanel(String id, final IModel<Service> model) {
super(id);
Link<?> link;
ContextImage image;
final ServiceUserDetails user = getSession().getUser();
final Service service = model.getObject();
// Check for groups and customize the link to subscribe or unsubscribe
if (checkUserGroups(user, service)) {
image = new ContextImage("img", "template/img/unsubscribe.gif");
link = new Link<Void>("select") {
/** */
private static final long serialVersionUID = -2153508505463870485L;
/**
*
* @see org.apache.wicket.markup.html.link.Link#onClick()
*/
@Override
public void onClick() {
ServiceRequest req = new ServiceRequest(service, user, "DELETE");
serviceProcessor.handleServiceRequest(req);
setResponsePage(new RegistrationPage());
}
};
} else { // user is not in group
image = new ContextImage("img", "template/img/subscribe.gif");
link = new Link<Void>("select") {
/** */
private static final long serialVersionUID = -2153508505463870485L;
/**
*
* @see org.apache.wicket.markup.html.link.Link#onClick()
*/
@Override
public void onClick() {
ServiceRequest req = new ServiceRequest(service, user, "PUT");
serviceProcessor.handleServiceRequest(req);
setResponsePage(new RegistrationPage());
}
};
}
link.add(image);
add(link);
}
Както можете да видите, единственото нещо, което искам да променя, е едно изображение, изображение на връзка. за абониране или отписване на услуга. елементите от списъка остават същите.
Аз съм съвсем нов в wicket и може би това е моят проблем.
Надяваме се, че сега е по-добре обяснено.