密码输入自定义

时间:2011-04-07 23:09:21

标签: scala lift

问候

在我的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 =>

任何人都有任何想法?

2 个答案:

答案 0 :(得分: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 :(得分:-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>
        )
      }
    }

  }
}