رفع قصاصة: البادئة لا بد أن مساحة اسم
سؤال
وايم بدأت للتو مع رفع وسكالا ولديهم مشكلة أنا لا أفهم حقا.
ولدي index.html و معلمات أكثر
<html>
<head><title>title</title></head>
<body>
<table>
<lift:Members.list>
<tr>
<td><m:nick/></td>
</tr>
</lift:Members.list>
</table>
</body>
</html>
والمقتطف التالي:
class Members {
def list(xhtml: NodeSeq) =
Member.findAll.flatMap(member => bind("m",xhtml
,"nick" -> member.nickName
))
}
ولسبب ما أحصل على الخطأ التالية. حاول إيف الكثير من الامور ولكن غير قادر على الحصول على عمل. ما الخطأ؟
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>
-----------------------------^
المحلول
وربما رفع لا تحصل على كيفية التعامل مع قيمة عودتك. محاولة إجبار التحويل الضمني لNodeSeq قبل specifing أنها returntype.
....
def list(xhtml: NodeSeq) : NodeSeq =
....
نصائح أخرى
وأنا فقط وجدت سببا آخر لهذا الخطأ - علامة لم تحل
.وكان هذا HTML:
<div >
<h3>Request Information</h3>
<lift:DetailedRequestData.renderContent>
<f:rowTag></f:rowTag>
</lift:DetailedRequestData.renderContent>
</div>
وكنت قد كتبت هذا ل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
}
وبما أنني لم تعيين نتيجة bind
إلى result
، كنت عائدا من NodeSeq
معدلة وحصلت على نفس الخطأ prefix not bound to a namespace
. تغيير عبارة واحدة ل:
result = bind("f", ns, "rowTag" -> <p>Request ID: {requestID}</p>)
نعم، كان هذا خطأي غبي بهم، ولكن من خلال توثيق المشكلة هنا، أتمنى أن إنقاذ شخص آخر من وجود نفس هذه المشكلة وعدم معرفة السبب في ذلك.
لا تنتمي إلى StackOverflow