Большая часть моего приложения использует GWT-RPC для связи между серветом и клиентом. Однако некоторым классам необходимо создать запрос на получение вручную, "разбивая строку" URL-адреса с различными параметрами, подобными этому ...
public static String getTemplateImage(String templateInstanceId, PageImage pageImage) {
return GWT.getHostPageBaseURL() + TEMPLATE_INSTANCE_IMAGE_SERVLET_PATH
+ "?templateInstanceId=" + templateInstanceId
+ "&fileName=" + pageImage.getImageId()
+ "&isBackground=false"
+ "&cropX=" + pageImage.getCropX()
+ "&cropY=" + pageImage.getCropY()
+ "&cropWidth=" + pageImage.getCropWidth()
+ "&cropHeight=" + pageImage.getCropHeight();
}
Мне было интересно, есть ли способ использовать для этого довольно крутой маршаллер объектов GWT-RPC от GWT?
public static String getTemplateImage(String templateInstanceId, PageImage pageImage) {
return GWT.getHostPageBaseURL() + TEMPLATE_INSTANCE_IMAGE_SERVLET_PATH
+ "?templateInstanceId=" + templateInstanceId
+ "&pageImage=" + SomeGWTClass.toRpcString(pageImage)
;
}
Затем на стороне сервлета сделайте это ...
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
final String templateInstanceId = req.getParameter("templateInstanceId");
final String strPageImage= req.getParameter("pageImage");
**final PageImage pageImage = SomeGWTClass.unmarshallString(PageImage.class,strPageImage);**
}