标签: lift

Scala lift框架,提交多个值的ajax表单?

我刚刚开始使用lift,我现在正在尝试将普通表单更改为ajax表单,但该方法processEntryAdd永远不会被调用.

def addUser(xhtml : Group) : NodeSeq = {

    var firstName = ""
    var lastName = ""

    def processEntryAdd() {
        Log.info("processEntryAdd: " + firstName + ", " + lastName)
    }

    SHtml.ajaxForm(
        bind("entry", xhtml,
             "firstName" -> SHtml.text(firstName, 
                 (x) => {
                     Log.info("Setting firstName to " + x); 
                     firstName = x
                 }),
             "lastName" -> SHtml.text(lastName, 
                 (x) => {
                     Log.info("Setting lastName to " + x); 
                     lastName = x
                 }),
             "submit" -> SHtml.submit("Add user", processEntryAdd),
        ))
}
Run Code Online (Sandbox Code Playgroud)

任何想法如何实现我想要做的,或为什么上面的代码不起作用.按下按钮时会提交两个表单字段的值,firstName并且lastName设置了两个局部变量,但未调用与SHtml.submit关联的函数.

谢谢!

ajax scala lift ajax-forms

6
推荐指数
2
解决办法
3915
查看次数

Scala 2.8和Lift状态

什么是使用Scala 2.8的Lift的状态?

我正在网上找到关于它的谈话片段.我一直在尝试调整pom.xml,但是我从Lift方面遇到了错误.

scala lift scala-2.8

6
推荐指数
1
解决办法
2150
查看次数

提升与他人

任何人都有升力的经验,以及它与更广泛使用的框架如rails和django相比如何?

scala lift

6
推荐指数
1
解决办法
2319
查看次数

将lift-json提取到具有上限的case类中

我花了最后一天搜索和阅读各种网站和文章,试图找到自己的问题的答案,我没有发现任何有用的东西.我甚至不确定这是否可行.我的问题是我试图使用lift-json解析并提取Json响应.响应由4部分组成,其中前3个部分对于我所做的每种类型的请求的每个响应总是相同的.最后一部分取决于请求的类型,但它总是一个类型的列表.我希望做这样的事情:

abstract class MyObjects
case class Apple(id: Int, name: String, color: String) extends MyObjects
case class Orange(id: Long, name: String, state: String) extends MyObjects

abstract class MyResponse
case class Fruits[T <: MyObjects](aisle: Int, bin: Int, hasWhat: Option[List[T]])
Run Code Online (Sandbox Code Playgroud)

如果我想知道所有的苹果是什么,我会提出要求,并回复一个苹果列表的回复.当我尝试提取此示例时:

myJson.extract[Fruits[Apple]]
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

net.liftweb.json.MappingException: do not know how to get type parameter from T
    at net.liftweb.json.Meta$.fail(Meta.scala:128)
    at net.liftweb.json.Meta$Reflection$.term$1(Meta.scala:206)
    at net.liftweb.json.Meta$Reflection$.typeParameters(Meta.scala:220)
    at net.liftweb.json.Meta$.mkContainer$1(Meta.scala:91)
    at net.liftweb.json.Meta$.fieldMapping$1(Meta.scala:101)
    at net.liftweb.json.Meta$.mkContainer$1(Meta.scala:90)
    at net.liftweb.json.Meta$.fieldMapping$1(Meta.scala:107)
    at net.liftweb.json.Meta$.toArg$1(Meta.scala:117)
    at net.liftweb.json.Meta$$anonfun$constructors$1$1$$anonfun$apply$1.apply(Meta.scala:83)
    at net.liftweb.json.Meta$$anonfun$constructors$1$1$$anonfun$apply$1.apply(Meta.scala:82)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:...
Run Code Online (Sandbox Code Playgroud)

我正在使用lift-json 2.1和scala 2.8.我确实有办法解决它,通过专门为每种类型的响应创建一个案例类,但我认为我想要做的更干净.只是想知道a)这是否可能?b)如果是这样,我做错了什么?

编辑...示例应用程序:

val apples = …
Run Code Online (Sandbox Code Playgroud)

json scala extract lift

6
推荐指数
1
解决办法
3915
查看次数

可替代Lift中的MegaProtoUser

在Lift中,整个ProtoUser构造非常棒,令人惊叹的是它为你做了什么,大部分优点(很遗憾,很多东西都没有)没有记录.

只有一个问题:它包含我不需要的数据,甚至包含我不想要的数据.例如,我希望我的用户通过昵称登录,而我不需要知道他的位置,区域设置或名/姓.但在注册时,我需要标准注册页面上未显示的信息.

我的第一个想法是重写我自己的用户特征,但后来我必须重新编写所有的会话代码,授权等.是否已有替代方案?或者是否可以改变ProtoUser我自己的注册和登录页面,以及只有我需要的数据?

谢谢收听.

scala lift

6
推荐指数
1
解决办法
1310
查看次数

是否存在针对Scala中MongoDB"架构"升级的良好框架?

MongoDB架构迁移/升级有哪些选项?

我们(我的同事和我)有一个相当大(约1亿条记录)的MongoDB集合.此集合被映射(ORM'd)到已经过许多不同迭代的Scala lift-mongodb对象.我们在那里有各种代码来处理丢失的字段,重命名,删除,迁移等.

尽管整个"无模式"的东西可以很好和灵活,但在这种情况下,随着我们的对象不断发展,它会导致大量代码混乱.继续沿着这条"灵活对象"的道路前进是根本不可持续的.

你们是如何使用Scala在MongoDB中实现模式迁移/升级的?这个框架是否存在?我知道Foursquare使用Scala和MongoDB以及Rogue(他们自己的查询DSL)...有谁知道他们如何处理他们的迁移?

谢谢.

scala lift mongodb nosql

6
推荐指数
1
解决办法
1598
查看次数

使用sbt 0.11.0安装Scala 2.9.1/Lift 2.4-M4

我正在学习在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)

macos scala jetty lift sbt

6
推荐指数
1
解决办法
1856
查看次数

为什么SBT 0.7.7在我的Linux系统上没有正常工作?(案例详情)

首先,如果有什么更好的事情进入你的脑海,我想请求更正我的问题标题.

让我们一提起REST Web服务例如,从简单地抬起书由大卫·波拉克在这里.

如果我在目录中打开Windows(Windows XP SP3,所有更新,Oracle JDK 7)控制台并运行"sbt"(sbt.bat),一切正常.但是如果我尝试在Linux中使用相同的(但使用"./sbt")(XUbuntu 11.10,OpenJDK 6,OpenJDK 7,Oracle JDK 7(尝试了所有这些)),SBT返回(而不是转到SBT控制台)模式)立即完成它的工作.这意味着命令可能只是./sbt它立即返回(在完成自动项目维护之后),或者是它./sbt jetty-run- 它只是启动Web服务器并立即关闭它.

此外,我为我的项目开发的Web服务编译并在Windows上正常工作,但无法./sbt compile在Linux上编译(使用)(通过相同版本的SBT).错误是"源文件'/.../src/main/scala/code/lib/FooBar.scala;src/main/scala/bootstrap/liftweb/Boot.scala'找不到",其中"FooBar. scala"是我执行所有服务的对象(直接从Boot.scala调用).

任何想法可能是什么原因以及如何解决它?

更新:第一个问题(SBT返回shell而不是提供SBT控制台)的原因似乎是在Windows上检出文件并且有CR + LF而不是仅仅LF行结束.找不到源文件的解决方案只是使用clean命令从头开始重新编译.

linux ubuntu scala lift sbt

6
推荐指数
1
解决办法
559
查看次数

部署自动化

我有一个Lift应用程序打包为WAR存档,必须在Jetty下部署.但是,我希望能够自动执行一些任务:

  • 指定目标服务器(或服务器集合).我有多个服务器,从开发到测试和生产服务器,我希望能够轻松地控制部署的目的地.
  • 目的地(例如,开发)可以表示服务器的集合,用于负载平衡目的.
  • 测试阶段.基本上,在每个部署中,如果应用程序无法编译或者一个或多个测试失败,我希望运行整个测试集并阻止部署.
  • WAR存档必须在Jetty上部署,再次在一台或多台运行Linux的Amazon EC2机器上部署.(Ubuntu 12.10)

我正在使用SBT,我不知道这将与Puppet或类似的东西有多好.你会怎么做?

deployment scala jetty lift puppet

6
推荐指数
1
解决办法
1998
查看次数

添加额外的lib文件夹依赖项以在电梯项目中构建sbt

我有一个我的电梯项目依赖的外部java项目.通过在我的sbt中添加以下行,我已经能够将依赖项添加到该项目中的类:

unmanagedClasspath in Compile += file("[Path to My Project]/classes")
Run Code Online (Sandbox Code Playgroud)

但是这个项目还有一个lib文件夹,它带有一组引用的jar文件,我无法弄清楚添加这些依赖项的正确语法是什么.尝试过以下但不起作用:

unmanagedJars in Compile += file("[Path to My Project]/lib/*.jar")
Run Code Online (Sandbox Code Playgroud)

任何指针都非常感激

问候

scala lift sbt

6
推荐指数
1
解决办法
2985
查看次数

标签 统计

lift ×10

scala ×10

sbt ×3

jetty ×2

ajax ×1

ajax-forms ×1

deployment ×1

extract ×1

json ×1

linux ×1

macos ×1

mongodb ×1

nosql ×1

puppet ×1

scala-2.8 ×1

ubuntu ×1