2011-04-07 109 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> 
     ) 
     } 
    } 

    } 
}