什么是使用Scala 2.8的Lift的状态?
我正在网上找到关于它的谈话片段.我一直在尝试调整pom.xml,但是我从Lift方面遇到了错误.
我一直在努力通过lift-json做一些简单的事情:将地图序列化为JSON.
我知道,我知道 - "Root对象还不能是List或Map" - 但我现在愿意将它包装在一个案例类中,但我仍然无法让它工作.感谢一些堆栈溢出帮助,我有序列化工作,但我无法从字符串反序列化.我得到的错误如"没有可用的_值"和"没有关于类型的信息".
网上有其他较旧的帖子,表明类型提示是答案,但这只会导致一个不同的错误,如"不知道如何反序列化_ _".
对于Scala 2.8.0和Lift 2.2:
import net.liftweb.json._
import net.liftweb.json.Serialization.{read, write}
case class MapWrap(data: Map[String, Any])
object Scaffold {
def main(args: Array[String]) {
implicit val formats = Serialization.formats(NoTypeHints)
//implicit val formats = Serialization.formats(ShortTypeHints(List(classOf[MapWrap])))
//implicit val formats = Serialization.formats(FullTypeHints(List(classOf[MapWrap])))
val ser = write(new MapWrap(Map[String,Any]("key" -> "value")))
println("JSON: " + ser)
println(read[MapWrap](ser))
}
}
Run Code Online (Sandbox Code Playgroud)
该行println(read[MapWrap](ser))导致投诉"net.liftweb.json.MappingException:数据无可用值".
如何反序化这个case类包装器(或实现我的最终目标:read(write("key" - >"value"))))?
我正在学习在Scala中进行Web开发.目前正试图在MAC OSX中使用sbt 0.11安装最新版本的Scala/lift.到目前为止,我已经完成了以下工作:
1.安装了Scala 2.9.1 final
2.从https://github.com/harrah/xsbt/wiki/Setup下载最新的sbt 0.11
3.为sbt设置路径环境
我现在要做的是从http://liftweb.net/download获取最新的电梯框架(2.4-M4),以便我可以尝试使用jetty在localhost:8080上运行lift_basic项目.我有几个问题;
因为在0.11上我将不得不这样做:
resolvers += "Web plugin repo" at "http://siasia.github.com/maven2"
addSbtPlugin("com.github.siasia" %% "xsbt-web-plugin" % "0.1.2")
而不是做libraryDependencies += ...我应该把我的对象解析器(检查下面的代码)放在哪里,这将使我能够安装jetty和web插件?所以,在lift_basic文件夹下,它们应该在Project/build/LiftProject.Scala中,还是只删除LiftProject.scala并在Project/Build.scala下创建Build.scala?
object Resolvers {
val webPluginRepo = "Web plugin repo" at "http://siasia.github.com/maven2"
val jettyRepo = "Jetty Repo" at "http://repo1.maven.org/maven2/org/mortbay/jetty"
}
object Dependencies {
// web plugin
val webPluginDeps = Seq(
"org.mortbay.jetty" % "jetty" % "6.1.26" % "jetty", // The last part is "jetty" not "test".
"javax.servlet" % "servlet-api" % …Run Code Online (Sandbox Code Playgroud)我想创建一个项目列表,并在每个项目上都有一个执行某些操作的超链接,例如从列表中删除该项目.
我的模板看起来像这样:
<lift:surround with="default" at="content">
<div class="locations lift:Main.locations">
<ul>
<li class="one">
<span class="name">Neverland</span>
(<a href="#" class="delete">delete this</a>)
</li>
</ul>
</div>
</lift:surround>
Run Code Online (Sandbox Code Playgroud)
我正在使用以下CSS转换来填充它:
def locations = {
".one *" #> somecollection map { item =>
".name" #> item.name &
".delete" #> ????
}
}
Run Code Online (Sandbox Code Playgroud)
现在,而不是"????",我很想放线沿线的东西SHtml.a( ()=>delete(item), _),但_这里是类型CssSel和a的说法应该是NodeSeq
我当然可以简单xml.Text("delete this"),但我想重用模板内的文本.
或者有不同的方式来生成AJAX超链接?
你知道Scala到Javascript DSL /编译器吗?我想用Scala编写我的Javascript代码,所以我不必编写这么多的JS代码.谢谢你的帮助!
如何将表单提交的结果传递给我重定向到的页面?
例如,假设我有以下逻辑:
Search Page -> validate
if errors - show Search Page again with errors <--- this part works
else - redirect to New Page(passing search params) <-- no params passed
Run Code Online (Sandbox Code Playgroud)
我的表单处理看起来像这样:
def process() = {
if (nameame== "Joe") {
S.error("Joe not allowed!")
}
val dateRegex="(\\d\\d/\\d\\d/\\d\\d\\d\\d|\\w*)";
if (!birthdate.matches(dateRegex)) {
S.error("birthdate", "Invalid date. Please enter date in the form dd/mm/yyyy.")
}
S.errors match {
case Nil =>S.notice("Name: " + name); S.redirectTo("search-results")
case _ =>S.redirectTo(S.uri)
}
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的 - 我的搜索结果没有获得"名字"或"生日"参数.当我进行S.redirectTo调用时,如何从表单中传递参数? …
我正在使用Lift(scala)构建Web应用程序,并且不确定是否将CouchDB或MongoDB用于数据库.
我的申请包括:
哪种实现会更好,CouchDB或MongoDB?
我试图使用SBT在Lift中进行基本的日志记录和调试.我使用Eclipse作为编辑器,但使用SBT进行所有编译.任何人都可以建议如何打印调试语句/记录到SBT控制台?
我是新来的.到目前为止,我一直在使用MVC模型并使用基本会话管理模型,即在会话中存储令牌并检查每个请求.我试图用电梯做同样的事,但我的会话突然过期了.甚至有一段时间我刚刚登录并退出了.我有分析,每当我得到这样的日志消息:
INFO - Session ucjrn5flnq9q1ke52z5zixgtt expired
我搜索过,但我找不到任何一步一步的导师
Lift中常用的DB模式迁移工具或库有哪些?
django还是铁路上还有南方的东西.或者这种方法在Lift中被认为是过时的,人们已经转向了一些新的方法?