我想在这里编码输入表单数据。有两种选择,我已经尝试过他们俩:“你忘记继承所需的模块”替代编码URL
- 使用
URLencoder.encode(inputString)
方法,该方法不会对GWT客户端的工作(我的代码位于客户模块中)导致错误 URL.encodeQueryString(inputString)
效果很好,但是当我运行使用JUnit相关的测试情况下,我得到的是unsatisfiedlinkederror
是否有编码方法的任何替代方案或有任何变通上面提到的方法呢?
我想在这里编码输入表单数据。有两种选择,我已经尝试过他们俩:“你忘记继承所需的模块”替代编码URL
URLencoder.encode(inputString)
方法,该方法不会对GWT客户端的工作(我的代码位于客户模块中)导致错误URL.encodeQueryString(inputString)
效果很好,但是当我运行使用JUnit相关的测试情况下,我得到的是unsatisfiedlinkederror
是否有编码方法的任何替代方案或有任何变通上面提到的方法呢?
对于第二个选项: GWT使用模块并需要进行编译,这与运行简单的JUnit测试不同。看看http://www.gwtproject.org/doc/latest/DevGuideTesting.html,他们解释了如何设置JUnit测试。
对于URL的建筑,我用的是 “UrlBuilder”:com.google.gwt.http.client.UrlBuilder
UrlBuilder u = new UrlBuilder();
u.setProtocol("https");
u.setHost("www.mysite.com:8080");
u.setPath("/myServletPath");
u.setParameter("username", nameField.getValue());
u.setParameter("someAttribute", "itsValue");
u.buildString();
此代码将导致: https://www.mysite.com:8080/myServlet?username=GWT%20User&someAttribute=itsValue
似乎UrlBuilder在内部使用URL.encodeQueryString()来编码给定的字符串。当我尝试使用它时,它抛出了同样的错误'UnsatisfiedLinkError由于URL.EncodeImpl' – Jayesh
您好@Jayesh,'com.google.gwt.http.client.UrlBuilder'用于GWT的客户端。我也在我的GWT项目的客户端中使用它,并且可以确认它的工作原理。 [我做了一些研究](https://groups.google.com/d/topic/google-web-toolkit/TtO-22bN7dA/discussion),看起来'UnsatisfiedLinkError'发生在你从服务器端调用它的时候。请查看有关错误的堆栈跟踪,并确保它未从服务器端调用。 – Churro
问题是我使用此函数的模块之一驻留在服务器端。这就是我无法从客户端转换到服务器端的原因。与Java所提供的URLEncoder.encode()函数一样。它建立在服务器端工作。当我在客户端使用这个功能时,它说'你忘了继承所需的模块吗?'尽管我在* .gwt.xml文件中添加了所有必需的依赖关系。 – Jayesh
谢谢!我会尽力而为。 – Jayesh