我是Scala和Lift的新手,我已经用了2个月了,所以我遇到了一些麻烦。我一直在阅读简单的电梯和最终的解除指南,但我按下按钮时尝试了重定向到另一个页面的方法没有成功。
这是我到目前为止的代码:
班级BL_LOG001S {
object Log extends Logger
var lang_id = 1//English
var ido = IDO_LOG001
var odo = ODO_LOG001
var usr = new User
var input_usr = DAO_LOGIN_USER_001.create
def init = {
Log.info("INIT 1: LANG_ID: "+lang_id)
lang_id = usr.lang_id
Log.info("INIT 2: LANG_ID: "+ lang_id)
}
def title = {
Log.info("TITLE: INIT END:")
<h2>{odo.body("title").toLabel(lang_id)}</h2>
<span>{usr.login_nm.toString}</span>
}
def login() = {
<table>
{odo.body("organization_nm").toTableElement(lang_id)}
{odo.body("login_nm").toTableElement(lang_id)}
{odo.body("password").toTableElement(lang_id)}
</table>
}
def transaction() = {
<table>
<tr>
<td><LOG001_1:submit><button>Login</button></LOG001_1:submit>
</td>
</tr>
</table>
}
def display(form: NodeSeq) = {
<lift:BL_LOG001.execute form="post" multipart="true">
{login}
{transaction}
</lift:BL_LOG001.execute>
}
def execute(form: NodeSeq) = {
doBind(form)
}
def checkAndLogin(): Unit = {
Log.info("Check: init: organization_nm = "+input_usr.organization_nm)
ido.body("organization_nm").setValue(input_usr.organization_nm)
ido.body("login_nm").setValue(input_usr.login_nm)
ido.body("password").setValue(input_usr.password)
usr.login(ido.body("organization_nm").getValue.toString,
ido.body("login_nm").getValue.toString,
ido.body("password").getValue.toString)
S.redirectTo("/AdminPage/ADM001")
}
def doBind(form: NodeSeq) = {
bind("LOG001_1", form,
"organization_nm" -> input_usr.organization_nm.toForm,
"login_nm" -> input_usr.login_nm.toForm,
"password" -> input_usr.password.toForm,
"submit" -> SHtml.submit("Login", checkAndLogin))
}
}
方法checkAndLogin有S.redirectTo,但它没有重定向到我需要的页面。我需要的是捕获组织和登录名,并在下一页显示它们。
如果我问一些愚蠢的话,我很抱歉。我真的很感激任何帮助。 感谢
答案 0 :(得分:1)
您是否尝试过对象 JsCmds 的方法 RedirectTo ? [doc of this here]
也许它可以帮到你。
对于未来 - 对于与Lift框架严格相关的问题,我建议在Lift forum询问,所有Lift专家都在哪里,他们对每个Lift开发人员都非常有帮助,特别是对于新手:)
祝你好运