当没有与当前线程关联的请求时,是否有任何方法可以使用wicket。例如,我想定期发送邮件,我想使用wicket面板作为邮件模板。但是当我使用TimerTask
时。这个帖子没有请求。
有没有办法在wicket中手动创建请求?或者更好的方法来处理这种情况?
我试试这个
final MockWebRequest request = new MockWebRequest(null);
final NullResponse response = NullResponse.getInstance();
RequestCycle rc = Application.get().createRequestCycle(request, response);
//do jobs
rc.detach()
但是在第3行它说没有应用程序附加到当前线程。
答案 0 :(得分:0)
解决方案是使用WicketTester启动面板并获取所需信息。
Wickettester tester = new WicketTester(yourApplication);
tester.startComponentInPage(new EmailPanel());
您可以使用FormTester提交表单。
但这是TEST代码,因此不应在生产中使用。我不知道这对性能,安全性等的影响。最好从面板中提取所需的电子邮件模板信息,并使其在Wicket Panel和其他类中使用。