2011-04-07 126 views
0

問候密碼輸入自定義

在我User.scala文件:

我使用的是隔壁班的自定義密碼輸入

的代碼是未來

import net.liftweb.mapper.MappedPassword 

[...] 

class User extends MegaProtoUser[User] { 

     [...] 

      override def _toForm: Box[NodeSeq] = { 
      S.fmapFunc({s: List[String] => this.setFromAny(s)}){funcName => 
       Full(
        <tr> 
        <td>{S.??("repeat")}</td> 
        <td><input id={fieldId} type='password' name={funcName} value={is.toString}/> </td> 
        </tr> 

        <tr> 
        <td>{S.??("repeat")}<td> 
        <td><input type='password' name={funcName} value={is.toString}/></td> 
        </tr> 
        ) 
      } 
      } 

[...] 

} 

編譯器顯示以下錯誤:

[ERROR] ....../org/santix/model/User.scala:209: error: value setFromAny is not a member of org.santix.model.User 
[INFO]    S.fmapFunc({s: List[String] => this.setFromAny(s)}){funcName => 

任何人有任何想法?

回答

0

有信息只是太少回答,但我可以在這裏看到一些點...

首先,我想你可以從一些例子來複制,因爲您使用this.setFromAny。包含此代碼段的代碼位於類User內,該代碼段的範圍爲MegaProtoUser[User]。唉,MegaProtoUser沒有任何方法setFromAny,我想你自己的類User也沒有,這是錯誤的主要原因。

現在,setFromAny是您導入的類別MappedPassword的一部分,但似乎並未在任何地方使用,因此我不知道您爲什麼導入它。但是,我可以看到MegaProtoUser有一個會員,返回MappedPassword。該成員被稱爲password,所以我想這可能工作:

S.fmapFunc({s: List[String] => this.password.setFromAny(s)}){funcName => 
-1

問題解決了!!!!

class User extends MegaProtoUser[User] { 
    ... 

    override lazy val password = new MyPassword(this) { 

    override def _toForm: Box[NodeSeq] = { 
     S.fmapFunc({s: List[String] => this.setFromAny(s)}) 
     {funcName => 
     Full(
      <tr> 
      <td>{ passwordDisplayName }</td> 
      <td> 
       <input id={fieldId} type='password' name={funcName} value=''/> 
       <!-- by sanx, value={is.toString} --> 
      </td> 
      </tr> 

      <tr> 
      <td>{S.??("repeat")}</td> 
      <td> 
       <input type='password' name={funcName} value=''/> 
      </td> 
      </tr> 
     ) 
     } 
    } 

    } 
}