2011-01-26 77 views
0

在客户端,我可以通过服务器端等效Window.Location.getParameter()的GWT

String parameterName = Window.Location.getParameter("parameterName"); 

但是做同样的服务器端检索GWT URL参数使我这个exeption:

[...] 
threw an unexpected exception: java.lang.ExceptionInInitializerError 
[...] 
Caused by: java.lang.ExceptionInInitializerError 
at com.google.gwt.user.client.Window$Location.getQueryString(Window.java:262) 
at com.google.gwt.user.client.Window$Location.ensureParameterMap(Window.java:321) 
at com.google.gwt.user.client.Window$Location.getParameter(Window.java:211) 
at com.icada.idea.server.CurrentUser.getUser(CurrentUser.java:31) 

凡在CurrentUser线31曰:

String noLogin= Window.Location.getParameter("nologin"); 

那么,如何获取URL参数服务器端?或者它是作为参数传递给我所调用的方法的唯一方法?

回答

1

在服务器端,您没有窗口。您从客户端获得的所有内容都是一个请求 - 并且该请求可能包含参数(GET参数或POST参数)。

您可以通过使用

request.getParameter("parameterName"); 

检索它们的请求Servlet中,例如可用在doGet(HttpServletRequest request, HttpServletResponse response)doPost(HttpServletRequest request, HttpServletResponse response)方法。

如果您使用的是GWTRPC,您可以使用getThreadLocalRequest(),但由于您通常不会将窗口参数作为POST参数发布到GWTRPC调用中,因此将所需的参数作为方法参数传递将更自然。

+0

你是对的,该参数不会与GWTRPC一起发送,因此我必须将其作为方法参数发送。 – JochenJung 2011-01-26 10:50:54