我最近学习了scala并即将开始工作/学习Lift框架.通过功能并开始使用框架,我已经看到了框架的一些惊人功能,包括反向ajax和彗星.在我的经验早期,对于从未缩放的反向ajax,我确实遇到了非常糟糕的经历.如果我为任何开发选择提升框架,这将是原因.我的问题是技术和产品的成熟程度以及在tomcat上使用lift的可扩展性有多大?与servlet规范3.0相比哪一个更好用于此目的,等待servlet规范3.0或开始使用lift?
我是Lift的新手,想知道它是否开发为只运行Jetty但没有其他Web服务器.任何的想法?
如何在RestHelper中的lift框架中简单地访问get和post属性?文档中没有任何明确的例子:(
package my.domain
import net.liftweb.http._
import net.liftweb.http.rest._
import net.liftweb.json.JsonAST._
import net.liftweb.json._
import net.liftweb.common.{Box,Full,Empty,Failure,ParamFailure}
import net.liftweb.mapper._
import ru.dmteam.model.{RssItem}
object ContentRest extends RestHelper {
def getq: String = {
val q = S.param("q")
q.toString
}
serve {
case "api" :: "static" :: _ XmlGet _=> <b>{getq}</b>
}
}
Run Code Online (Sandbox Code Playgroud)
我想了解如何q在我请求时提升电梯的价值http://localhost:8080/api/static.xml?q=test
我想开始一个新的Web应用程序项目,我感到困惑的是两个框架,即GWT(Java)或Lift(Scala).所以我想要你的意见我选择哪一个?根据我的项目要求,两者都很好.那么在框架比较的基础上请告诉我哪个好?
我已经使用Scala大约一年了,现在想进入Lift.在官方网站之后,我在http://simply.liftweb.net/index-Chapter-2.html#toc-Chapter-2获得了指南
但是,该示例不起作用.这是我得到的错误.
C:\Lift\hello>sbt update ~jetty-run
C:\Lift\hello>set SCRIPT_DIR=C:\scala\bin\
C:\Lift\hello>java -Xmx512M -jar "C:\scala\bin\sbt-launch.jar" update ~jetty-run
[info] Set current project to default-7944be (in build file:/C:/Lift/hello/)
[success] Total time: 0 s, completed 22 Feb, 2012 3:41:06 PM
[error] Not a valid command: jetty-run
[error] Not a valid project ID: jetty-run
[error] Not a valid configuration: jetty-run
[error] Not a valid key: jetty-run (similar: run)
[error] ~jetty-run
[error] ^
Run Code Online (Sandbox Code Playgroud)
我以前没有使用过sbt,并且不想因为必须学习sbt,maven或其他东西而陷入困境.我本质上想要一个"hello"世界应用程序(在这种情况下,聊天应用程序)启动并运行,然后再进一步深入了解Lift.
不幸的是,官方"入门"指南中的第一个例子被打破了.任何想法错误是什么.我尝试了http://groups.google.com/group/simple-build-tool/browse_thread/thread/60635edfadbcd816建议的方法,没有任何运气
我正在学习Json4s库.
我有一个像这样的json片段:
{
"records":[
{
"name":"John Derp",
"address":"Jem Street 21"
},
{
"name":"Scala Jo",
"address":"in my sweet dream"
}
]
}
Run Code Online (Sandbox Code Playgroud)
而且,我有Scala代码,它将json字符串转换为List of Maps,如下所示:
import org.json4s._
import org.json4s.JsonAST._
import org.json4s.native.JsonParser
val json = JsonParser.parse( """{"records":[{"name":"John Derp","address":"Jem Street 21"},{"name":"Scala Jo","address":"in my sweet dream"}]}""")
val records: List[Map[String, Any]] = for {
JObject(rec) <- json \ "records"
JField("name", JString(name)) <- rec
JField("address", JString(address)) <- rec
} yield Map("name" -> name, "address" -> address)
println(records)
Run Code Online (Sandbox Code Playgroud)
records屏幕的输出给出了:
列表(地图(名称 - > John Derp,地址 …
我一直在编写Rails和Lift编程.Rails说,工作的乐趣.但是提升性能太棒了,不容忽视.但是,我发现Lift内部的构建内容与rails相比要慢一些.例如,每当Lift webapp发生变化时,我都需要请求maven重新编译/重新测试整个webapp(这是一个非常繁重的开销).
我想知道是否有可用于Lift的实时编译(和测试)工具?
我是scala和lift的新手,我想用一些ajax制作一个表格.因此,主要表单来自正常的有状态片段,中间内容用一些ajax形式包含(其他片段中的内容但不是有状态的,因为我无法在Stateful中使用ValueCell).
在那里我想动态添加任何不.按"添加"按钮,按用户需要选择多选框.
我通过选择SHtml.ajaxSelect()并在ValueCell中保存并保存在会话上下文中来进行正常的下拉选择.
在这里,我可以使用ValueCell来存储数据,因为ajaxSelect支持ajax.但在多选中没有"ajaxMultiSelect"?? 因此,当按下整个表单中的"提交"按钮时,我需要从那些动态添加的多选框中检索数据到表单变量.
http://seventhings.liftweb.net/wiring - 这个例子是我完成任务的指南.他们在这里使用动态添加文本字段.但是我想在点击提交按钮时添加多选并保存数据.
请帮帮我一个人.如果你想进一步澄清,我可以给.
谢谢你们...
我想学习Lift.不幸的是,我尝试的所有文档都是过时的,不可读的,不正确的或上面的组合.我尝试了以下方法:
PS我见过类似的问题.他们中的大多数人很久以前就被问过了.从那篇文章开始,情况有所改善吗?
PPS是否有任何其他类型的安全scala Web框架(不提供Play 2.0.它不是类型安全的.我没有看到任何理由在Scala中创建它).
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)