标签: lift

Lift Web 框架查询字符串生成器

如何创建带有查询字符串参数的链接:

/path/to/view?param=358&name=Something+with+spaces
Run Code Online (Sandbox Code Playgroud)

在电梯里?我知道你可以简单地写它,我正在寻找一种明智的方法,对空格和其他特殊字符进行编码。例如:

Link("path/to/view").param("param", 358).param("name", "Something with spaces")
Run Code Online (Sandbox Code Playgroud)

预先感谢,艾格姆。

http lift query-string

5
推荐指数
1
解决办法
521
查看次数

Lift(Scala)嵌套代码段(每天多个项目)

尝试通过使用Lift框架开始使用Scala,我在创建我想象的代码时遇到了常见问题:我有一个日期列表,每天都有一个列表,列出当天的项目(嵌套列表) ).

我的想法是采取这种方法:

<div class="lift:DaySnippet">
    <h1 class="day">Name of Day</h1>
    <ul class="day-items">
        <!-- wanted to have a separate snippet but haven't made it work -->
        <!-- <li class="lift:DayItemSnippet">Item content</li> -->
        <li class="item">
            <span class="name">Name</span>
            <span class="desc">Description</span>
        </li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

最初我不会有内部片段,但认为这是有道理的.

所以我可以像这样定义一个片段:

class DaySnippet {
    // Ignoring that this is a stupid way to define the data
    val days = ("Monday", ("Item 1", "Item 1 Description") :: Nil) ::
        ("Tuesday", ("Item 2", "Item 2 Description") ::
            ("Item 3", "Item 3 Description") :: …
Run Code Online (Sandbox Code Playgroud)

scala lift

5
推荐指数
1
解决办法
588
查看次数

如何强制在 Lift Mapper 中创建新事务?

我们在项目中使用 Lift + Mapper(版本 2.4)。我们也使用每个请求的事务模式S.addAround(DB.buildLoanWrapper())

\n\n

在我们的一个请求中,我们需要嵌套事务,我们发现这是有问题的。我们发现可能的“黑客”之一是在单独的线程中启动事务(如下例所示),因为DB对象用于ThreadLocal管理当前连接和事务状态信息。

\n\n

是否有任何实现比下面的更好(更安全并且没有多线程)?

\n\n
  import net.liftweb.db.{DefaultConnectionIdentifier, DB}\n  import akka.dispatch.Future\n\n  /**\n   * Will create a new transaction if none is in progress and commit it upon completion or rollback on exceptions.\n   * If a transaction already exists, it has no effect, the block will execute in the context\n   * of the existing transaction. The commit/rollback is handled in this case by the parent transaction block.\n   */\n  def inTransaction[T](f: \xe2\x87\x92 …
Run Code Online (Sandbox Code Playgroud)

scala transactions lift lift-mapper

5
推荐指数
1
解决办法
369
查看次数

有没有办法自动交换单子?

我编写了一个程序来Maybe从一对中取出一个:

deMaybe :: (a, Maybe b) -> Maybe (a, b)
deMaybe (_, Nothing) = Nothing
deMaybe (x,Just y) = Just (x, y)
Run Code Online (Sandbox Code Playgroud)

我知道这Maybe是一个单子并且(,) a是一个函子(以及其他类型类)。我想知道是否缺少更高级别的功能,例如:

commute :: (Functor f, Monad m) => f (m a) -> m (f a)
Run Code Online (Sandbox Code Playgroud)

我的问题是:我可以deMaybe使用更通用的类型签名(例如假设的类型签名)来编写commute,承认我正在尝试将一个函子传递到另一个函子吗?fmap可以使用、>>=、 、 &c等函数来完成此操作吗pure

monads haskell lift

5
推荐指数
1
解决办法
242
查看次数

如何在lift项目中使用dispatch.json

我很困惑如何在调度和提升中组合json库来解析我的json响应.

我显然是斯卡拉新手.

我写了这段代码:

val status = {
  val httpPackage = http(Status(screenName).timeline)
  val json1 = httpPackage
  json1
} 
Run Code Online (Sandbox Code Playgroud)

现在我被困在如何解析twitter json响应

我试过使用JsonParser:

val status1 = JsonParser.parse(status) 
Run Code Online (Sandbox Code Playgroud)

但得到了这个错误:

<console>:38: error: overloaded method value parse with alternatives: 
(s: java.io.Reader)net.liftweb.json.JsonAST.JValue<and> 
(s: String)net.liftweb.json.JsonAST.JValue 
cannot be applied to (http.HttpPackage[List[dispatch.json.JsObject]]) 
   val status1 = JsonParser.parse(status1) 
Run Code Online (Sandbox Code Playgroud)

我不确定,无法弄清楚接下来要做什么,以便迭代数据,提取它并将其呈现到我的网页.

scala lift scala-dispatch

4
推荐指数
2
解决办法
1784
查看次数

在开始使用Lift之前我需要学习什么?

我知道斯卡拉.我用过mongoDB,redis,sbt,...后端的东西.

我知道基本的HTML,CSS和JavaScript,但从未做过真正的Web开发.

我不知道AJAX是什么.我真的不知道任何前端的东西.

在我开始尝试解决Lift之前,我应该学到什么?

scala lift

4
推荐指数
1
解决办法
192
查看次数

在Eclipse中设置Scala Lift项目

我正在尝试在Eclipse中设置我的第一个scala lift项目,它是Not Simple(TM).

我所做的是通过以下方式通过Maven建立项目

mvn archetype:generate -U \
-DarchetypeGroupId=net.liftweb \
-DarchetypeArtifactId=lift-archetype-basic_2.9.1 \
-DarchetypeVersion=2.4-SNAPSHOT \
-DarchetypeRepository=http://scala-tools.org/repo-releases \
-DgroupId=demo.helloworld -DartifactId=helloworld -Dversion=1.0-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)

然后我用这个创建了一个eclipse项目mvn eclipse:eclipse(因为找出所有的依赖关系,并将它们全部添加到构建路径中)

然后,该项目与已安装的Scala版本冲突.所以我从buildpath中删除了对scalalang的三个现有引用,并将我自己的scala添加到buildpath中.我正在使用scala 2.9.0.

现在可以构建项目,但是当我尝试运行RunWebApp时,会抛出异常:

Exception in thread "main" java.lang.NoClassDefFoundError: RunWebApp
Caused by: java.lang.ClassNotFoundException: RunWebApp
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: RunWebApp. Program will exit.
Run Code Online (Sandbox Code Playgroud)

我知道Eclipse Scala IDE中Scala-Lift项目的答案错误,建议在http://groups.google.com/group/scala-ide-user上提问, 但我希望有人可以指点我以某种方式回答有同样问题的其他人也可能找到答案

eclipse scala classpath lift maven

4
推荐指数
1
解决办法
1772
查看次数

hibernate-spatial unresolved dependencies postgis-jdbc; 1.5.3:not found

我正在安装hibernate空间,以下是官方网站文档中的步骤:

http://www.hibernatespatial.org/tutorial-hs4.html

问题在于图书馆的依赖性

为什么找不到图书馆:

postgis-jdbc:jar:1.5.3:编译

在官方网站上查找此库的版本:

http://postgis.refractions.net/download/

但不可用

终端上显示的消息如下:

[warn]    http://scala-tools.org/repo-releases/org/postgis/postgis-jdbc/1.5.3/postgis-jdbc-1.5.3.jar
[warn]          ::::::::::::::::::::::::::::::::::::::::::::::
[warn]          ::          UNRESOLVED DEPENDENCIES         ::
[warn]          ::::::::::::::::::::::::::::::::::::::::::::::
[warn]          :: org.postgis#postgis-jdbc;1.5.3: not found
[warn]          ::::::::::::::::::::::::::::::::::::::::::::::
[info] 
[info] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
Run Code Online (Sandbox Code Playgroud)

任何人都知道我如何解决这种依赖

非常感谢您的关注

hibernate scala lift

4
推荐指数
1
解决办法
2797
查看次数

用升力将xml转换为Json表现得很奇怪

我正在使用scala/lift作为Rest API.在引擎盖下,我正在生成xml,它将通过Xml.toJson()转换为json作为输出.

现在我注意到一些奇怪的行为让我疯狂.

例如,我有以下xml:

<data>
<item>
    <foo>1</foo>
    <bar>1</bar>
</item>
<item>
    <foo>2</foo>
    <bar>2</bar>
</item>
</data>
Run Code Online (Sandbox Code Playgroud)

xml.toJson()的结果如下所示:

JObject(
List(
    JField(
        data,JObject(
            List(
                JField(item,
                JArray(
                    List(
                        JObject(
                            List(
                            JField(foo,JString(1)), 
                            JField(bar,JString(1)))
                        ), 
                        JObject(
                            List(
                            JField(foo,JString(2)), 
                            JField(bar,JString(2))
                            )
                        )
                    )
                )
                )
            )
        )
    )
)
)
Run Code Online (Sandbox Code Playgroud)

但如果我添加一个新的xml元素:

<data>
<baz>234</baz>
<item>
    <foo>1</foo>
    <bar>1</bar>
</item>
<item>
    <foo>2</foo>
    <bar>2</bar>
</item>
</data>
Run Code Online (Sandbox Code Playgroud)

关于JArray的结果是不同的:

JObject(
List(
    JField(data,JObject(
        List(
            JField(baz,JString(234)), 
            JField(item,JObject(
                List(
                    JField(foo,JString(1)), 
                    JField(bar,JString(1))
                ))
            ), 
            JField(item,JObject(
                List(
                    JField(foo,JString(2)), 
                    JField(bar,JString(2))
                ))
            )
        )
    ))
)
Run Code Online (Sandbox Code Playgroud)

)

数组未定义,我有两个名为"item"的对象.这是正常行为吗?我想让数组没有包装一些"项目"标签.

xml json scala lift xml-serialization

4
推荐指数
1
解决办法
459
查看次数

如何将片段功能绑定到按钮或图像上的onclick事件?

我已经定义了这个函数来构建一个学生列表,每个学生都有他的名字,姓氏和图像,这取决于一个属性可以是刻度线还是十字形.我想将标签学术(我的图像)分配给onClick事件,以便在我的片段中调用一个名为学术(学生)的函数来接收学生,然后重定向到另一个页面.谁能帮我??

def students(xhtml: NodeSeq) = {

    def bindStudents(template: NodeSeq): NodeSeq = {

      studentsList.flatMap {
        s => bind("studentTag", template, "name" -> s.Name, "surname" -> s.Surname,
          AttrBindParam("academic", if (s.HasIssue("Academic")) tickUrl else crossUrl, "src"),         
        )}
    }
    bind("list", xhtml, "studentsList" -> bindStudents _)
  }


 def academic(s:Student)={
    //do some stuff with s
    redirectTo("/OtherPage.html")
  }
Run Code Online (Sandbox Code Playgroud)

HTML代码

<list:studentsList>
            <tr>
                <td> <studentTag:name /> </td>
                <td> <studentTag:surname /> </td>
                <td>
                     <img  studentTag:academic=""/>
                </td>
</list:studentsList>
Run Code Online (Sandbox Code Playgroud)

scala lift intellij-idea

4
推荐指数
1
解决办法
2002
查看次数