是否可以在Lift Web框架中创建通过AJAX做出反应的表单(和链接),但是也可以在没有Javascript支持的情况下工作?如果是这样,怎么样?
当我使用构建表单时<lift:form.ajax>,表单action被设置为javascript://不再没有JS提交.如果我在没有显式AJAX支持的情况下构建表单,我不知道如何插入AJAX功能.
我想我可以构建一个RESTful接口(无论如何我们必须构建它)并编写自定义Javascript以通过它提交表单.我想避免代码重复:如果可以使用相同的代码处理所有三个输入(RESTful,传统HTTP POST,AJAX),那将是最好的.
我想创建一个项目列表,并在每个项目上都有一个执行某些操作的超链接,例如从列表中删除该项目.
我的模板看起来像这样:
<lift:surround with="default" at="content">
<div class="locations lift:Main.locations">
<ul>
<li class="one">
<span class="name">Neverland</span>
(<a href="#" class="delete">delete this</a>)
</li>
</ul>
</div>
</lift:surround>
Run Code Online (Sandbox Code Playgroud)
我正在使用以下CSS转换来填充它:
def locations = {
".one *" #> somecollection map { item =>
".name" #> item.name &
".delete" #> ????
}
}
Run Code Online (Sandbox Code Playgroud)
现在,而不是"????",我很想放线沿线的东西SHtml.a( ()=>delete(item), _),但_这里是类型CssSel和a的说法应该是NodeSeq
我当然可以简单xml.Text("delete this"),但我想重用模板内的文本.
或者有不同的方式来生成AJAX超链接?
在我的应用程序中,我有一个对某个主题的响应表。结构大致如下:
CREATE TABLE responses (
id INT NOT NULL PRIMARY KEY,
topic_id INT NOT NULL,
author_id INT NOT NULL,
response TEXT
);
Run Code Online (Sandbox Code Playgroud)
id是一个自动递增字段,topic_id并author_id为外键,也有相应的指标等。
我总是想按插入时间排序,通常是最近的。在大多数情况下,我将通过topic_id. 一个典型的查询如下所示:
SELECT * FROM responses WHERE topic_id=123 ORDER BY id DESC LIMIT 20;
-- or, for pagination:
SELECT * FROM responses WHERE topic_id=123 AND id < 456789 ORDER BY id DESC LIMIT 20;
Run Code Online (Sandbox Code Playgroud)
我想实现一个阻止列表 - 每个用户都有一个author_id他们不想看到的s列表。我需要检索前 20 个结果,不包括那些回复它们的author_ids和响应。
确定是否应排除一行非常复杂,虽然可能可以在数据库中执行此操作(在 PL/SQL 中或通过预处理),但我希望将逻辑保留在应用程序中。所以我可以做两件事之一:
我正在寻找一种方法来确定POSIX兼容系统上当前用户的文件权限(即进程的UID).我不想尝试打开文件 - 这可能会弄乱目录和各种特殊文件.
我正在编译指定目录的目录列表,并为每个文件报告一堆东西:文件名,大小,类型(文件/目录/其他),权限(您可以阅读,您可以编写).对于大小和类型,我已经有stat可用的呼叫结果.
这就是我想出的:
if ((dirent->st_uid == getuid() && dirent->st_mode & S_IRUSR)
|| (dirent->st_gid == getgid() && dirent->st_mode & S_IRGRP)
|| (dirent->st_mode && S_IROTH)) entry->perm |= PERM_READ;
if ((dirent->st_uid == getuid() && dirent->st_mode & S_IWUSR)
|| (dirent->st_gid == getgid() && dirent->st_mode & S_IWGRP)
|| (dirent->st_mode && S_IWOTH)) entry->perm |= PERM_WRITE;
Run Code Online (Sandbox Code Playgroud)
我必须这样做,还是有一个简单的调用/宏可以完成同样的事情?ACL支持的加分点,虽然此时并非严格必要.