2012-02-04 27 views
0

這是現在除了這個問題,我剛纔問(第二天在這裏發揮作用)playframework,標記文件不反饋信息到控制器

tag not receiving the model bean (it's null) but containing page does?

,但現在我得到了網頁上的價值輸入文本框,但在公司對象交付給我的控制器時,它不會發送到我的控制器。

我基本上有這樣

#{form @Login.registerFinish(), id:'register'} 

     #{registerUserImpl user:user/} 
//then there are more input fields for the company 

然後頁面上,有是有,像這樣

<div id="register:firstDecorate"> 
    <div class="entry"> 
     <div class="spacer"></div> 
     #{field '_user.firstName'} 
     <span class="label ${field.errorClass}">User's First Name:</span> 
     <span class="input ${field.errorClass}"> 
      <input type="text" class="boxtpl" name="${field.name}" value="${_user?.firstName}"> 
      <a id="newinfo" class="help" title="&{'help.usersFirstName'}">Help</a> 
      <span class="error">${field.error}</span> 
     </span> 
     #{/field} 
    </div> 
</div> 

SOOOO領域我的標籤文件,然後讓我的第一個控制器,該頁面通過一個UserDbo和CompanyDbo和我看到來自UserDbo的電子郵件填寫輸入類型=文本元素就好了,當我提交表單時,我看到CompanyDbo傳遞給我的控制器,但UserDbo爲空?

我在Java代碼控制器方法簽名

public static void registerFinish(UserDbo user, CompanyDbo company) { 
     //here we show the invite user page first normally... 
     log.info("user="+user+" company="+company+" c="+company.getAlias()); 

我不知道爲什麼我的用戶數據不被傳遞給我。我們有兩頁重新使用這個頁面(好吧,這是一個從縫隙中嘗試播放框架的端口)。

感謝,在輸入標籤名稱= 「user.firstName」 院長

回答

1

嘗試改變名稱= 「$ {} field.name」。我猜測,當你的上面的模板呈現時,$ {field.name}呈現爲_user.firstName,然後不綁定到控制器「UserDbo user」的簽名。

您可以通過進行更改並嘗試更改或從當前代碼中查看實際呈現的頁面源來測試。此外,如果這不起作用,您可以將表單部分的頁面源添加到問題中,以便我們查看它。

+0

這就是它。我希望他們在這裏有更多的一致性,就像接縫一樣......在一個案例中使用_而不是在其他不一致的尖叫中......我想知道seam是如何避免這種不一致的。哦,到目前爲止,這個框架似乎很棒......仍然在挖掘,很可能會改變。 – 2012-02-04 20:55:03

+0

這可能是值得提出一個錯誤,因爲我同意你的行爲應該是什麼。開發人員定期監控堆棧溢出情況,以便他們提供更好的建議至少工作很容易。 – grahamrb 2012-02-04 20:56:58

+0

完成了,已報告,謝謝。 – 2012-02-04 22:21:49