如何使用Lift框架获取从代码段传递的HTML页面中的参数
我想开发一个Lift web应用程序,我有一个索引页,其中包含以下内容:如何使用Lift框架获取从代码段传递的HTML页面中的参数,html,web-applications,lift,Html,Web Applications,Lift,我想开发一个Lift web应用程序,我有一个索引页,其中包含以下内容: <div id="main" class="lift:surround?with=default&at=content"> <div> App </div> <div> <form method="post" class="lift:DumbForm"> <table> <tr>
<div id="main" class="lift:surround?with=default&at=content">
<div> App </div>
<div>
<form method="post" class="lift:DumbForm">
<table>
<tr><td> Email:</td> <td><input name="email" type="text"></td></tr>
<tr><td> Password:</td> <td><input name="pwd" type="password"></td></tr>
<tr><td> Name:</td> <td><input name="name" type="text"></td></tr>
<tr><td><input type="submit" value="Sign in"></td> <td><input type="reset" value="Reset"></td></tr>
</table>
</form>
</div>
</div>
应用程序
电邮:
密码:
姓名:
使用相应的代码段(文件“DumbForm.scala”):
包代码
包片段
导入net.liftweb_
导入http_
导入scala.xml.NodeSeq
/**
*获取查询参数的代码段
*从表单发布并处理它们
*/
对象哑铃形式{
def render(in:NodeSeq):NodeSeq={
//使用Scala进行理解,以评估每个参数
为了{
r要执行您希望执行的操作,您只需将表单直接指向hello.html
装载的位置。我假设它位于同一路径中的hello
dumbform.html
<div id="main" class="lift:surround?with=default&at=content">
<div> App </div>
<div>
<form method="post" action="hello">
<table>
<tr><td> Email:</td> <td><input name="email" type="text"></td></tr>
<tr><td> Password:</td> <td><input name="pwd" type="password"></td></tr>
<tr><td> Name:</td> <td><input name="name" type="text"></td></tr>
<tr><td><input type="submit" value="Sign in"></td> <td><input type="reset" value="Reset"></td></tr>
</table>
</form>
</div>
</div>
<div data-lift="ShowHelloSnippet">
<p>Hello <span name="paramname"></span></p>
</div>
<div id="main" class="lift:surround?with=default&at=content">
<div> App </div>
<div>
<form method="post" data-lift="FormHandlerSnippet">
<table>
<tr><td> Email:</td> <td><input name="email" type="text"></td></tr>
<tr><td> Password:</td> <td><input name="pwd" type="password"></td></tr>
<tr><td> Name:</td> <td><input name="name" type="text"></td></tr>
<tr><td><input id="submitbutton" type="submit" value="Sign in"></td> <td><input type="reset" value="Reset"></td></tr>
</table>
</form>
</div>
</div>
<div data-lift="ShowHelloSnippet">
<p>Hello <span name="paramname"></span></p>
</div>
我认为,更有效的方法是使用Lift的:
dumbform.html
<div id="main" class="lift:surround?with=default&at=content">
<div> App </div>
<div>
<form method="post" action="hello">
<table>
<tr><td> Email:</td> <td><input name="email" type="text"></td></tr>
<tr><td> Password:</td> <td><input name="pwd" type="password"></td></tr>
<tr><td> Name:</td> <td><input name="name" type="text"></td></tr>
<tr><td><input type="submit" value="Sign in"></td> <td><input type="reset" value="Reset"></td></tr>
</table>
</form>
</div>
</div>
<div data-lift="ShowHelloSnippet">
<p>Hello <span name="paramname"></span></p>
</div>
<div id="main" class="lift:surround?with=default&at=content">
<div> App </div>
<div>
<form method="post" data-lift="FormHandlerSnippet">
<table>
<tr><td> Email:</td> <td><input name="email" type="text"></td></tr>
<tr><td> Password:</td> <td><input name="pwd" type="password"></td></tr>
<tr><td> Name:</td> <td><input name="name" type="text"></td></tr>
<tr><td><input id="submitbutton" type="submit" value="Sign in"></td> <td><input type="reset" value="Reset"></td></tr>
</table>
</form>
</div>
</div>
<div data-lift="ShowHelloSnippet">
<p>Hello <span name="paramname"></span></p>
</div>
hello.html
<div id="main" class="lift:surround?with=default&at=content">
<div> App </div>
<div>
<form method="post" action="hello">
<table>
<tr><td> Email:</td> <td><input name="email" type="text"></td></tr>
<tr><td> Password:</td> <td><input name="pwd" type="password"></td></tr>
<tr><td> Name:</td> <td><input name="name" type="text"></td></tr>
<tr><td><input type="submit" value="Sign in"></td> <td><input type="reset" value="Reset"></td></tr>
</table>
</form>
</div>
</div>
<div data-lift="ShowHelloSnippet">
<p>Hello <span name="paramname"></span></p>
</div>
<div id="main" class="lift:surround?with=default&at=content">
<div> App </div>
<div>
<form method="post" data-lift="FormHandlerSnippet">
<table>
<tr><td> Email:</td> <td><input name="email" type="text"></td></tr>
<tr><td> Password:</td> <td><input name="pwd" type="password"></td></tr>
<tr><td> Name:</td> <td><input name="name" type="text"></td></tr>
<tr><td><input id="submitbutton" type="submit" value="Sign in"></td> <td><input type="reset" value="Reset"></td></tr>
</table>
</form>
</div>
</div>
<div data-lift="ShowHelloSnippet">
<p>Hello <span name="paramname"></span></p>
</div>
这将使表单在对象上设置值,然后执行有状态重定向,在页面重定向后设置ShowHelloSnippet
中的值供您使用。作为两者的替代方法,您可以使用Ajax在同一页面上简单地显示值。我想知道如何使用请求参数设置变量(在代码段中)并在视图中获取此参数(HTML)?!我不知道名称?!我在HTML中有:Hello和代码段:object DumbForm{def render(in:NodeSeq):NodeSeq={对于{r,render方法有:def render(in:NodeSeq):NodeSeq={for{r除非变量是会话作用域,否则您无法设置变量和重定向。我将更新我的答案,以显示您可以执行我认为您正在尝试执行的操作的一种方式。我用我认为您正在尝试执行的操作的更多内容更新了答案。让我知道这是否适用于您。我将文本替换为密码,如果您看到al,请参阅l可用的输入类型