2013-06-26 28 views
0

內部錯誤,我有一個Ext JS的窗口與用戶的細節彈簧的形式。另外,我在我的控制器中的用戶驗證,因此,如果表單有錯誤,我可以看到什麼錯誤是:顯示春季形式的ExtJS的4窗口

UserValidator userValidator = new UserValidator(); 
userValidator.validate(user, result); 
if(result.hasErrors()){ 
    return "RegisterUserForm"; 

我的問題是相對於有這種形式的ExtJS的窗口內。如果我返回「RegisterUserForm」,瀏覽器會轉到此窗體並顯示錯誤,但不會顯示在窗口中。它顯示新頁面中的表單和錯誤,並將URL更改爲/ RegisterUserForm。 (這是顯而易見的)我怎樣才能顯示相同的錯誤形式而沒有這個問題?

謝謝

回答

1

有2個選項:

  1. 更改服務器的代碼使一個AJAX調用,只返回數據被你的ExtJS的代碼來處理,而不是形式
  2. 頁讓你Ext.window.Window使用與/RegisterUserForm網址的iFrame:

ex:

Ext.create('Ext.window.Window', { 
    layout: 'fit', 
    //other config here 
    items: [{ 
     xtype: 'component', 
     autoEl: { 
      itemId: 'iframe', 
      tag: 'iframe', 
      src: '/RegisterUserForm', 
      frameBorder: 0 
     } 
    }] 
}).show() 
+0

iframe適用於我。非常感謝你@kevhender。順便說一下..另一種選擇是返回jsondata並用extjs形式做到這一點? – mannuk

+0

會有幾種方法來處理JSON數據,具體取決於您所期望的錯誤數量,以及如何你想格式化。如果有多列錯誤,您可以使用'Ext.grid.Panel';用更少的錯誤,而不是儘可能多的信息,你可以使用'Ext.view.View',甚至只是一個普通的老'Ext.Component',使用一個'tpl'配置格式化個別錯誤。 – kevhender

+0

aha .. @kevhender當submit爲successuf時,我的控制器返回一個json文本。是否有可能用iframe來捕捉它,或者我必須考慮做一個內部表格來做到這一點? – mannuk