我正在尝试修改电梯中的boot.scala并遇到一个有趣的错误.这就是我目前拥有的:
val entries = Menu(Loc("Home", List("index"), "Home")) ::
Menu(Loc("StudentLogin", List("studentlogin"), "Student Login")) ::
Menu(Loc("ProviderLogin", List("providerlogin"), "Provider Login"))
LiftRules.setSiteMap(SiteMap(entries :_*))
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Boot.scala:29:error:value ::不是net.liftweb.sitemap.Menu菜单的成员(Loc("StudentLogin",List("studentlogin"),"Student Login"))::
关于我可能做错什么的任何想法?
谢谢.
我有以下变量series:
var series: List[FlotSerie] = List(
new FlotSerie() {
override val label = Full("Min")
},
new FlotSerie() {
override val label = Full("Max")
},
new FlotSerie() {
override val label = Full("Avg")
}
)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我使用以下方法获得编译器错误,该方法采用新数据点并series使用List[FlotSeries]基于新数据和旧系列的新数据进行更新.
def updateSeries(sample: Sample): List[FlotSerie] = {
series = series.map(serie =>
serie match {
case item if item.label == Full("Min") => {
new FlotSerie() {
override val label = item.label
override val data = (sample.timestamp.toDouble, sample.min) :: serie.data
}
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用CSS Selector Transforms来完成一些Lift示例.我正在尝试这种转变:
- NodeSeq => NodeSeq - 一个转换节点的函数(是的,它可以是一个CssBindFunc):
"#name" #> ((n: NodeSeq) => n % ("class" -> "dog")) // <span id="name"/> -> <span id="name" class="dog"/>
这就是%现在给我带来麻烦的.当我尝试编写这样的代码时,我得到了错误value % is not a member of scala.xml.NodeSeq.是否有进口或我缺少的东西?
这是我的片段:
import scala.xml._
import net.liftweb.util.Helpers._
import model.User
class Users {
def show = {
".userName" #> "name replaced" &
".userEmail" #> "email replaced" &
".changePassword" #> ((n: NodeSeq) => n % ("href" -> "changePassword"))
}
}
Run Code Online (Sandbox Code Playgroud) 有没有办法使这项工作(Scala 2.8.1):
class A
class B
def f(implicit b: B) {}
implicit val a = new A
implicit def aToB(a: A) = new B
f(a) // works ok
f // error: could not find implicit value for parameter b: B
Run Code Online (Sandbox Code Playgroud)
其实我的问题是与Lift的(2.2)的依赖注入,我试图给供应商[T]转换为T和隐含需要它在类的构造函数,而不每一VAL之后增加进口:
object DependencyFactory extends Factory {
implicit def vendorToVal[T](vendor: Vendor[T]): T = vendor.vend
implicit val db = new FactoryMaker[DbAccess](Model) {}
//uncommenting the following line makes it work, but can we avoid it?
//import db._
implicit val userStore = new FactoryMaker[UserStore](new …Run Code Online (Sandbox Code Playgroud) 我是Spring,Lift和Scala的新手,我不明白为什么会有这么多技术争吵.我发现很多人在不同的论坛上比较和争夺两种编程语言和两种框架.除了Java/Lift语言的差异,为什么还有这么多关于Spring vs Lift的讨论?
这两个框架在概念上是不是分开了?
当然,Lift重叠并与Spring的MVC模块竞争前端开发,但Spring不会做更多的事情吗?
此外,如果有人更喜欢使用Lift构建Web应用程序,是不是可以将Lift与现有的Spring基础架构相结合/集成,并且将Java,Scala,Spring和Lift的环境结合在一起?
我需要使用用户名和电话号码创建一个电梯.有人可以提供一个完整的例子,如何在电梯中创建一个可以提交的简单表格?或者提到一个好的.我看到的所有例子都不全,或者对我来说有太多选择,我无法编译它们.
谢谢,
奥哈德.
有没有办法在正常的请求处理流程之外使用Lift的代码段处理?我知道我可以打电话LiftSession.findAndProcessTemplate,但这显然需要一个实例LiftSession.只要我只使用无状态片段,有没有办法在没有LiftSession的情况下做到这一点?或者,有没有办法获得一个"空"的实例LiftSession?
我目前正在使用服务器端的lift和d3(一个javascript可视化框架)实现所有可视化的图形可视化工具.我遇到的问题是在脚本中我想从服务器获取与会话相关的数据.
所以基本上,我的目标是在静态js脚本中编写lift-valid ajax回调.
如果您觉得最好的解决方案是我已经尝试过的,请随时发布详细的答案告诉我如何准确地使用它以及它如何完全解决我的问题.
此解决方案类似于隐藏文本输入可能更有可能工作.然而它并不优雅,这意味着我将不得不在加载时加载大量脚本,这不是很方便.
这似乎是电梯社区中首选的解决方案之一,如邮件列表中的讨论所述.
通常,从电梯中的javascript函数获取数据的方法是创建REST接口.但是,此接口不会链接到任何会话.这是我从上一个问题得到的解决方案:从电梯片段获取d3中的json数据
另一个解决方案是将ajaxcallback作为主脚本的参数来调用以生成我的图形.但是我希望有很多回调,我不想弄乱我的脚本的参数.
这个解决方案可以很优雅,但我的脚本很长,我真的更喜欢它仍然是静态的.
在查看我的网页的源代码时,我发现ajaxSelect的回调是:
<select onchange="liftAjax.lift_ajaxHandler('F966066257023LYKF4=' + encodeURIComponent(this.value), null, null, null)" name="F96606625703QXTSWU" id="node_delete" class="input">
Run Code Online (Sandbox Code Playgroud)
此外,还有一个变量包含网页末尾的页面状态:
var lift_page = "F96606625700QRXLDO";
Run Code Online (Sandbox Code Playgroud)
所以,我想知道是否有可能使用此liftAjax.lift_ajaxHandler函数模拟我的ajaxcall是有效的.但是我不知道要使用的确切合成器.
由于我在客户端"伪造"了一个请求,我现在想在客户端获取请求并将其发送到正确的函数.这是LiftRules.dispatch对象似乎是最佳解决方案的地方:当它被调用时,所有的会话管理都已经完成(请求被认证并链接到会话),但是我不知道如何编写正确的代码片段.append功能.
在提升中,所有变量名称都被更改为随机字符串以增加安全性,我希望在我的应用程序中具有相同的行为,即使这可能意味着我将不得不"给"javascript这些值.但是,15个字符串值的数组仍然是比15个函数更好的权衡,作为javascript函数的参数.
在我的研究之后,我找到了这个页面:将服务器功能映射到客户端操作,这些操作以某种方式解释了命名函数的目标,即使它没有引导我使用工作解决方案.
我有以下html结构:
<div class="top_level">
... other elements ...
</div>
Run Code Online (Sandbox Code Playgroud)
我希望输出结果为DIV序列:
<div id="1" class="top_level">
... other elements ...
</div>
<div id="2" class="top_level">
... other elements ...
</div>
<div id="3" class="top_level">
... other elements ...
</div>
Run Code Online (Sandbox Code Playgroud)
我试图通过CssSel变换来做到这一点,其中嵌套元素本身将被循环(div中有一个表),所以我有类似于:
".top_level *" #> groups.map(group =>
".top_level [id]" #> group.id & // WHAT CSS Selector can I use?
".the_row *" #> group.rows.map( ... )
)
Run Code Online (Sandbox Code Playgroud)
一切正常,除了ID没有设置.我可以看到我的选择器".top_level [id]"是嵌套的,因此它有意义它不起作用,但我想不出还有什么可以放在那里得到我正在寻找的结果.
我的lift sbt文件中有一个unmanagedClasspath条目,它指向一个外部Java项目的类。它编译正常,但运行时出现NoClassDefError。下面是sbt条目,后面是NoClassDefError的一些跟踪。
任何帮助表示赞赏
德斯
unmanagedClasspath in Compile += file("[Path to my project]/classes")
ERROR n.liftweb.http.provider.HTTPProvider - Failed to Boot! Your application may not run properly
java.lang.NoClassDefFoundError: com/myproject/MyClass
at bootstrap.liftweb.Boot.boot(Boot.scala:70) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_21]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_21]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_21]
at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_21]
at net.liftweb.util.ClassHelpers$$anonfun$createInvoker$1.apply(ClassHelpers.scala:364) ~[lift-util_2.9.1-2.5-RC2.jar:2.5-RC2]
at net.liftweb.util.ClassHelpers$$anonfun$createInvoker$1.apply(ClassHelpers.scala:362) ~[lift-util_2.9.1-2.5-RC2.jar:2.5-RC2]
at net.liftweb.http.DefaultBootstrap$$anonfun$boot$1.apply(LiftRules.scala:1999) ~[lift-webkit_2.9.1-2.5-RC2.jar:2.5-RC2]
at net.liftweb.http.DefaultBootstrap$$anonfun$boot$1.apply(LiftRules.scala:1999) ~[lift-webkit_2.9.1-2.5-RC2.jar:2.5-RC2]
at net.liftweb.common.Full.map(Box.scala:553) ~[lift-common_2.9.1-2.5-RC2.jar:2.5-RC2]
Run Code Online (Sandbox Code Playgroud)