Hi there,
our solution was to make an own ActionMapper which returns an Action for all UIDL requests, this Action simply forwards the original request.
@Override
public ActionMapping getMapping(HttpServletRequest request, ConfigurationManager configManager) {
String uri = getUri(request);
Object done = request.getAttribute("done");
if (done == null && uri.endsWith("/UIDL/")) {
request.setAttribute("done", "true");
// let my vaadin action handle the request
ActionMapping am = new ActionMapping("struts2UIDL", "/vaadin", "execute", null);
return am;
}
return null;
}
The Action looks as follows:
public class UIDLAction {
private String uri;
public String execute() {
HttpServletRequest request = ServletActionContext.getRequest();
this.uri = "?" + request.getQueryString();
return "success";
}
public void setUri(String uri) {
this.uri = uri;
}
public String getUri() {
return uri;
}
}