Я хотел сделать небольшой «журнал» того, что делает пользователь. У меня разные панели, и все они имеют функции Ajax, такие как «onclick», «onevent» и «onchange». Я планировал определить Application ArrayList of Strings для регистрации всех вещей.
я написал следующее в WicketApplication.javaWicket: Определить переменную Application wide
public class WicketApplication extends WebApplication {
private List<String> log = new ArrayList<String>();
@Override
public Class<? extends WebPage> getHomePage() {
//code
}
@Override
public void init() {
//code
}
public List<String> getLog() {
return log;
}
public void setLog(List<String> log) {
this.log = log;
}}
Тогда в одном из моих панелей:
public class Foo extends Panel{
private static final long serialVersionUID = 1L;
private WicketApplication wapp = (WicketApplication) Application.get();
public Foo(String id){
super(id);
}
public void bar(){
List<String> protocol = wapp.getLog();
protocol.add(foo.getBarName() + " has been added to " + selectedKontakt.getObject().getName());
wapp.setLog(protocol);
}
}
В следующей панели я попытался создать новую ссылку WicketApplication. Но, похоже, это не одно и то же.
Теперь у меня есть следующие вопросы:
- не является WicketApplication уникальных и поэтому используемые для такого рода манипуляций?
- Должен ли я взять сеанс для этого?
- Могу ли я даже проанализировать Applcation для WebApplication? Потому что у меня есть эта ошибка в консоли
< WAPP ----- поле, которое вызывает проблему
Есть ли другой способ создать широкую переменную Application?
Спасибо, WebSession было решением. Эта [ссылка] (https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=76385) помогла. –