2010-03-27 34 views
3

我很頭疼如何檢索服務器端的gwt單選按鈕值。在servlet中檢索GWT單選按鈕值

這裏是我的UiBinder的形式:

<g:FormPanel ui:field="form"><g:VerticalPanel ui:field="fruitPanel"> 
    <g:RadioButton name="fruit">apple</g:RadioButton> 
    <g:RadioButton name="fruit">banana</g:RadioButton> 
    <g:SubmitButton>Submit</g:SubmitButton> ... 

這裏是我初始化形式:

form.setAction("/submit"); 
form.setMethod(FormPanel.METHOD_POST); 

所以我雖然我將不得不這樣做對的servlet:

fruit = req.getParameter("fruit") 

但當然這不起作用,參數果不存在:/

編輯:好吧,我得到的參數水果,但它總是「上」

我還沒有嘗試在Java中與添加的單選按鈕:

RadioButton rb0 = new RadioButton("fruit", "apple"); 
RadioButton rb1 = new RadioButton("fruit", "banana"); 
fruitPanel.add(rb0); 
fruitPanel.add(rb1); 

編輯:這是一個GWT的問題: Issue 4795

+0

您是否使用Firebug(或類似工具)檢查了FormPanel向服務器提交的內容?這應該縮小可能的原因。 – 2010-03-27 18:29:28

+0

好主意,我要看看它:) – 2010-03-28 13:17:38

回答

1

因爲我不能評論這個問題:您使用的是哪個版本的GWT?

我已經爲你做了創建完全相同的模板和螢火告訴我,它的發佈:

「果=的」

當然,當其中一個複選框選中該有效載荷僅發佈。 ;-)

但是要小心:最近我已經意識到GWT並沒有在UiBinder模板中設置單選按鈕的「值」,而是隻發送「on」作爲使單選按鈕更多的值或者用於UiBinder模板的用處更少。

HTH 最大

+0

是的,我沒有在我的問題FormPanel忽略面板,對不起。 我使用的是後,我的提交按鈕是在VerticalPanel。 該servlet正在閱讀文本框罰款,但我似乎無法得到單選按鈕。 你也建議我應該使用java創建單選按鈕,那麼我可以將它們附加到UiBinder空面板上? UiBinder對我來說是有用的,因爲我處理的表單有點大。 – 2010-03-28 12:33:05

+0

它現在正在工作,我在servlet中做了一些愚蠢的事情,雖然它總是「開」:/ – 2010-03-28 13:30:45

+0

唷,太棒了!始終具有「開」價值的東西確實使UiBinder在這種用例中無用。試圖通過g:RadioButton標籤設置「值」不起作用,因爲GWT然後抱怨模糊的setter。也許我們應該提交一個bug(http://code.google.com/p/google-web-toolkit/issues/list)? – Makkes 2010-03-28 13:38:06

-1

NO,NO,不,不。這不是JSP,哥們!

在我看來,你有一個很多的文檔閱讀做GWT的工作原理。這我不能在一個答案帖子中明確,但要開始某處:

1)您沒有在服務器上運行您的代碼,這是客戶端! 2)您應該使用GWT RPC傳輸數據到/從服務器 3)RTFM :)

+0

他不必使用RPC將數據傳輸到服務器 - POST/GET與servlet一樣可行(有時,在處理外部應用程序等時,它是唯一的方法) 。而且他似乎知道自己在做什麼 - 他將表單中的值(FormPanel)發佈到servlet - 哪部分是錯誤的? – 2010-03-27 18:28:13

+0

當然,我也使用一個servlet,因爲我在其他形式中使用blobstore。 – 2010-03-28 12:37:02