我想在這裏編碼輸入表單數據。有兩種選擇,我已經嘗試過他們倆:「你忘記繼承所需的模塊」替代編碼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