Snap:获取表单数据和“if”

时间:2012-03-19 12:41:13

标签: haskell haskell-snap-framework

我似乎无法理解如何使用heist获取表单数据。 我刚开始研究Haskell Web框架,但文档有点......稀缺,至少可以说。在snap网站上的skinny heist教程中没有提到表单。 所以给定一个简单的html表单,如何获取表单数据以处理我的处理函数?任何人都可以指点我的教程,谷歌只是保持沉默在这一个?或者也许是一个简短的例子......

另外,我在哪里可以获得有关条件控制的信息?比方说,如果我想在我的页面中有条件地包含html的某些部分,我该如何使用heist?基本上,“if”在哪里?

由于

1 个答案:

答案 0 :(得分:2)

请参阅Using digestive functors with Heist以获取有关简单表单的精彩教程,并mightybyte's musings了解有关抢劫的信息。如果您打算使用multipart/form-data,请使用Snap.Util.FileUploads模块。

您可以使用Splice根据条件生成内容 Splice会返回Node的列表,

mySplice = do
  -- get environment conditions
  -- condition could be passed in as a parameter 
  if condition 
     then return [] -- do nothing
     else return [TextNode "some content"] -- see Text.XmlHtml

然后,您可以使用以下内容将此拼接绑定到标记:

bindSplice myTag mysplice defaultHeistState

<myTag/>放在模板中。当Heist呈现模板时,它会在遇到标记时评估拼接并将值插入其位置。