标签: lift

无法使用lift-json将json解析为`ProvinceJson`类

Scala代码:

import net.liftweb.json._

case class Province(id: String, name: String, parentName: Option[String], parentId: Option[String])

case class ProvinceJson(provinceData: List[Province])

object Test extends Application {
  val json = """ {
               |    "provinceData":
               |        [
               |            {
               |                "name":"hb",
               |                "parentName":null,
               |                "parentId":null,
               |                "id":"450"
               |            }
               |        ]
               |}
               | """.stripMargin

  parse(json).extract[ProvinceJson]

}
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,它报告编译错误:

could not find implicit value for parameter formats: net.liftweb.json.Formats
parse(json).extract[ProvinceJson]
                    ^

not enough arguments for method extract: (implicit formats: net.liftweb.json.Formats, implicit mf: scala.reflect.Manifest[com.thoughtworks.sfexpress.sf_ws.ProvinceJson])com.thoughtworks.sfexpress.sf_ws.ProvinceJson.
Unspecified value parameters formats, mf.
parse(json).extract[ProvinceJson] …
Run Code Online (Sandbox Code Playgroud)

json scala lift

10
推荐指数
1
解决办法
3106
查看次数

提升图像上传,调整大小,存储在数据库中,显示

是否有一个简洁的示例,说明如何上传图像,调整图像大小,将其存储在数据库中,然后使用Lift提供图像?

我确信我可以从文件上传,Java 2D API,Lift Mapper和Response API中将它拼凑在一起.但有没有我可以遵循的示例代码,以"正确"或推荐的方式?

scala file-upload image lift java-2d

9
推荐指数
1
解决办法
4156
查看次数

Lift Web框架的开源应用程序

我正在寻找为Lift Web框架编写的开源应用程序.我想阅读他们的代码,并从中学习最好的Lift-ish编码风格.

有谁知道开源的Web应用程序?

open-source scala lift

9
推荐指数
2
解决办法
1173
查看次数

Lift Framework无法反序列化JSON数据

我正在尝试使用Lift框架反序列化JSON文本,并且它们似乎不支持Seq特征(尽管支持List).举个例子...

一些代表员工的JSON数据(名字和姓氏)......

{"employees":[{"fname":"Bob","lname":"Hope"},{"fname":"Bob","lname":"Smith"}]}
Run Code Online (Sandbox Code Playgroud)

这是员工域对象:

case class Employee(fname: String, lname: String) { }
case class Employees(employees: Seq[Employee]) { }
Run Code Online (Sandbox Code Playgroud)

这是我的JSON反序列化代码......

class EmployeeTest { 

  @Test def test() {
     val jsonText: String = ....
     val e = deserialize(jsonText)
  }

  def deserialize(in: String): Employees = {
    implicit val formats = net.liftweb.json.DefaultFormats
    net.liftweb.json.Serialization.read[Employees](in)
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我将Employees域对象更改为使用List而不是Seq,那么它可以工作.但是如果可以的话,我真的很想使用Seq.

这是我在运行上面的代码时看到的异常(使用Seq):我能做些什么来让它工作吗?谢谢你的帮助!

net.liftweb.json.MappingException: unknown error
    at net.liftweb.json.Extraction$.extract(Extraction.scala:43)
    at net.liftweb.json.JsonAST$JValue.extract(JsonAST.scala:288)
    at net.liftweb.json.Serialization$.read(Serialization.scala:50)
    at EmployeeTest.deserialize(EmployeeTest.scala:20)   
    at EmployeeTest.test(EmployeeTest.scala:13)
Caused by: java.lang.UnsupportedOperationException: tail of empty list
    at scala.collection.immutable.Nil$.tail(List.scala:388)
    at scala.collection.immutable.Nil$.tail(List.scala:383)
    at net.liftweb.json.Meta$Constructor.bestMatching(Meta.scala:60)
    at net.liftweb.json.Extraction$.findBestConstructor$1(Extraction.scala:187) …
Run Code Online (Sandbox Code Playgroud)

json scala list lift seq

9
推荐指数
1
解决办法
2639
查看次数

从Scala String中删除HTML标记

我正在使用Scala和Lift框架开发Web应用程序.我在DB中有记录,其中包含页面的html perex

<b>Hi all, this is perex</b>
Run Code Online (Sandbox Code Playgroud)

在一个场景中,我需要打印用户perex,但没有html标签.

Hi all, this is perex
Run Code Online (Sandbox Code Playgroud)

可以在Scala中执行此操作吗?因为我试图与谷歌一起看,但没有成功.

感谢所有回复.

string parsing scala lift strip-tags

9
推荐指数
1
解决办法
5674
查看次数

如何将case类转换为lift-json jobject类?

我有一个案例课

case class Doc(title:String, ....)
Run Code Online (Sandbox Code Playgroud)

我想转换为lift-json JObject所以我可以更容易地使用JObject方法合并等.

json scala lift

9
推荐指数
1
解决办法
1726
查看次数

为什么Web开发框架倾向于解决语言的静态功能?

当我开始使用Lift时,我有点惊讶它使用反射(或似乎),它在静态类型的函数语言中有点出乎意料.我对JSP的经验与此类似.

我对Web开发很新,所以我真的不知道这些工具是如何工作的,但我想知道,

  1. Web开发的哪些方面鼓励使用反射?

  2. 是否有任何工具(在静态类型语言中)处理(1)引用模板页面中的代码(2)对象关系映射,以不使用反射的方式?

reflection scala static-typing lift

9
推荐指数
1
解决办法
275
查看次数

Scala:如何将一个小型Web服务器嵌入到scala应用程序中?

对于一个旨在帮助人们学习Scala的社区资源的小型教育项目,我正在寻找一种在后台线程中提供和处理网页的简单方法.

最小背景:Scalatron是一款多人游戏,其中玩家将机器人程序(用Scala编写)相互对立.它伴随着一步一步的Scala教程.目前,玩家需要在他们的本地机器上使用IDE来编译机器人,然后通过将机器人复制到共享网络目录中将其发布到游戏中.这很麻烦.对于下一个版本,最好提供基于浏览器的机器人编辑和发布,以最大限度地简化组织者和玩家的设置.

我已经有了一个后台线程工作,它将编译即时到达服务器的Scala源代码(无需完整的IDE).接下来,我必须运行一个小型的Web服务器,为玩家提供一个接入点,并处理机器人上传(这可以摆脱网络共享).

要求是非常基本的:最初我设想用一个编辑框和一个"开始"按钮服务一个页面(=上传到服务器,编译并发布到游戏中); 我希望每隔5或10秒钟,所有用户上传不超过一个机器人的并发用户不超过20个; 我需要为每个用户保持最小状态(只是一个名字),我需要向用户返回编译器错误消息.请注意,游戏屏幕更新不会显示在浏览器中,而是显示在连接到服务器计算机的投影仪上.主要是为了允许最简单的设置(双击游戏服务器.jar)我认为在现有游戏服务器中的后台线程中运行Web服务器会很不错.

最合适的方法是什么?我应该使用一些现有的框架,比如Play或Lift吗?是否存在执行与此类似的操作的代码?计划在这样的后台线程中运行Web服务器是否合理?任何建议表示赞赏.

webserver scala lift playframework

9
推荐指数
2
解决办法
2637
查看次数

SBT控制台 - 如何在初始化时运行东西?

我正在使用sbt控制台来调试一些使用Lift Framework编写的Web应用程序.

每次运行它时,我都会运行一些命令来初始化框架.

import bootstrap.liftweb.Boot
(new Boot).boot
import ...some frequently used models from my app...
Run Code Online (Sandbox Code Playgroud)

我希望每次启动它时都要做这个样板.

这该怎么做?

scala lift sbt

9
推荐指数
1
解决办法
611
查看次数

使用Eclipse和Tomcat开发Scala/Lift Web App

所以我在过去的11个小时里试图让最简单的Scala/Lift应用程序通过Eclipse在Tomcat上运行.显然没有人试图这样做,或者这是世界上最简单的事情,所以没有人记录他们是如何做到的.使用maven原型创建代码并使用mvn tomcat运行它:运行没问题.通过Eclipse完成所有工作是另一回事.我会说这是我第一次尝试在Eclipse中使用Maven做任何事都没有帮助.我试过m2eclipse和eclipse-IAM.如果有人能够从头到尾指导我完成整个过程,或者将我指向可以的资源,那就太棒了.谢谢.


版本/错误详细信息

Scala 2.8带升降机2.1

如果我使用Scala 2.8和Lift 2.1(?)与eclipse 3.5.2,scala-ide和eclipse-iam,我的pom.xml文件告诉我:

错误:解析'org.scala-tools:maven-scala-plugin'版本时出错:插件需要Maven版本2.2.1

我使用这个原型定义从Maven项目创建向导创建了项目:

<archetype>
    <groupId>net.liftweb</groupId>
    <artifactId>lift-archetype-blank_2.8.0</artifactId>
    <version>2.1-SNAPSHOT</version>
    <repository>http://scala-tools.org/repo-snapshots</repository>
    <description>Shawn's Custom Thinger</description>
</archetype>
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这里的问题是从2.1-SNAPSHOT创建的pom.xml文件需要Maven 2.2.1,但是eclipse-iam还没有使用该版本.我还没有设法找到一种方法来使用我自己安装的Maven v2.2.1.据说eclipse-iam不允许使用外部maven安装.

其他尝试

我尝试用这个原型构建项目:

<archetype>
    <groupId>net.liftweb</groupId>
    <artifactId>lift-archetype-jpa-blank</artifactId>
    <version>1.1-SNAPSHOT</version>
    <repository>http://scala-tools.org/repo-snapshots</repository>
    <description>Archetype - blank JPA project for Lift</description>
</archetype>
Run Code Online (Sandbox Code Playgroud)

但是,我从Tomcat获取运行时错误,因为我的bootstrap.liftweb.Boot类有ClassNotFound错误.但是,我可以看到maven为我创建了一个默认的Boot类.

m2eclipse的

我使用m2eclipse得到了一个没有错误的项目,但是我遇到了在Tomcat上部署它的问题.我打算重新考虑这个,因为我很好奇,如果我确实设法使一个项目工作,但在我尝试它时在URL中有一个区分大小写的问题.但是,这个过程更加手动.如果可能的话,我更喜欢eclipse-iam解决方案,但是我会在这一点上采取我所能得到的解决方案.

eclipse tomcat maven-2 scala lift

8
推荐指数
1
解决办法
3979
查看次数