lift trecho: prefixo não vinculado a um namespace

votos
3

im apenas começando com elevador e scala e tem um problema eu realmente não entendo.

eu tenho o index.html folowing

<html>
<head><title>title</title></head>
<body>
    <table>
        <lift:Members.list>
            <tr>
                <td><m:nick/></td>
            </tr>
        </lift:Members.list>
    </table>
</body>
</html>

E o seguinte trecho:

class Members {
  def list(xhtml: NodeSeq) =
  Member.findAll.flatMap(member => bind(m,xhtml
                                       ,nick -> member.nickName
    ))
}  

por alguma razão, eu recebo o seguinte erro. ive tentou um monte de coisas, mas não posso fazê-lo funcionar. o que está errado?

XML Parsing Error: prefix not bound to a namespace
Location: http://localhost:8080/hazardlift-1.0-SNAPSHOT/
Line Number 8, Column 25:<td><m:nick></m:nick></td>
-----------------------------^
Publicado 19/06/2009 em 20:11
fonte usuário
Em outras línguas...                            


2 respostas

votos
4

Talvez elevador não ficar como lidar com o seu valor de retorno. Tente forçar uma conversão implícita para NodeSeq por especificando-a como returntype.

....
def list(xhtml: NodeSeq) : NodeSeq = 
....
Respondeu 19/06/2009 em 20:26
fonte usuário

votos
0

Acabei de encontrar outra causa deste erro - uma tag por resolver.

Eu tive este HTML:

<div >
    <h3>Request Information</h3>

    <lift:DetailedRequestData.renderContent>
        <f:rowTag></f:rowTag>
    </lift:DetailedRequestData.renderContent>
</div>

Eu tinha escrito isso para renderContent:

def renderContent(ns: NodeSeq): NodeSeq = {
  val key = beginTrans(DisplayData.logger)
  var result = ns

  try {
    var requestID = DisplayData.getParameter("request")
    bind("f", ns, "rowTag" -> <p>Request ID: {requestID}</p>)
  }
  catch {
    case t: Throwable => DisplayData.logger.error("[DetailedRequestData$.renderContent] ", t)
  }

  endTrans(DisplayData.logger, key)
  result
}

Desde que eu não tinha atribuído o resultado do bindque result, eu estava voltando a não modificada NodeSeqe obteve o mesmo prefix not bound to a namespaceerro. Alterando a uma instrução:

    result = bind("f", ns, "rowTag" -> <p>Request ID: {requestID}</p>)

Sim, esta foi a minha própria culpa estúpida, mas, documentando o problema aqui, eu espero que irá salvar alguém de ter este mesmo problema e não saber por quê.

Respondeu 24/07/2012 em 19:59
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more