2012-02-29 55 views
0

我正在面對這個問題關於表單和請求。我使用sencha和javascript來創建一個網頁,將表單張貼到一個java web應用程序,該應用程序從數據庫中提取數據並對其進行格式化,然後再將html頁面返回給客戶端。表單提交和HttpServletRequest

我面臨的問題是,由於某種原因,雖然窗體確實被填充(使用chrome中的調試器進行檢查),但是java程序不能識別表單中的參數,而是將其讀取爲空。

我遵循從舊的Java程序設置表單的方法,它的工作原理,但它失敗了我的。有誰知道我可以如何解決這個問題,或者我可能會做錯什麼?

我已經包含了javascript和java代碼,我決定在下面返回哪個頁面。

JavaScript處理的函數調用來提交表單:

var MenuA = function() { 
    simple.getComponent('flag').setValue('MenuA'); 
    simple.getEl().dom.action = './Soap'; 
    simple.getEl().dom.method = 'POST'; 
    simple.submit();} 

Java代碼來決定頁面的選擇:

if (request.getParameter("flag").matches("MenuA")) { 
    choice = 2; 
} else if (request.getParameter("flag").matches("MenuB")) { 
    choice = 3;} 

FormPanel中代碼:

var simple = new Ext.form.FormPanel({hidden:true,standardSubmit:true, 
items:[ 
{xtype: 'textfield', hidden: true, name : 'password', label: 'Password', id:'password'} 
,{xtype: 'textfield', hidden: true, name : 'user', label: 'user', id:'user'} 
,{xtype: 'textfield', hidden: true, name: 'flag', label: 'flag', id: 'flag'}]}) 

回答

1

request.getParameter("flag").matches("MenuA"); 

方法正在尋找名稱爲「flag」的表單元素。 由於您的表單可能不包含標誌字段,所以它認爲它爲空。 因此,爲了克服,你可以添加一個輸入字段到名稱爲「flag」的表單中,並把它放入你想要的值。 我認爲這應該適合你。

+0

嗨Yadav,感謝您的答覆。我已經在代碼中已經有了一個FormPanel,只是忘了將它包含在上面。我只是把它添加到第一篇文章中。對不起,忘記包含它。 – Rax 2012-03-01 05:40:54

0

沒關係。發現問題。我沒有意識到表單沒有正確發送。抱歉,添麻煩了!