【问题标题】:how to redirect to j_security_check in the managed bean?如何重定向到托管 bean 中的 j_security_check?
【发布时间】:2011-09-02 18:32:33
【问题描述】:

我已经成功运行了一个基于 FORM 的身份验证项目,并尝试对 icefaces 项目做同样的事情。换句话说,我想使用 ice:form 而不是 form,所以我想知道是否可以将登录请求重定向到托管 bean 中的 j_security_check:

public void myMethod(ActionEvent e){
  //some code that redirects to j_security_check
}

在我的登录页面中:

<ice:commandButton value="login" ActionListener="#{myBean.myMethod}"/>

但我真的不知道该怎么做,也没有找到关于 j_security_check 及其实际工作原理的文档。

【问题讨论】:

  • 请修正您的帖子,您似乎在这一行中遗漏了一些文字:“换句话说,我想使用而不是 ,所以我想知道......”

标签: icefaces jaas j-security-check


【解决方案1】:

您可以拥有一个带有action="j_security_check" 的表单,其中包含包含用户名和密码的文本字段或隐藏字段。您可以将这些字段绑定到托管 bean 中的变量。您可以使用表单中的提交按钮而不是&lt;ice:commandButton&gt;

如果必须使用&lt;ice:commandButton&gt;,可以使用Javascript发送“myform.submit()”脚本:

public void myMethod(ActionEvent e)
{
      //Some other code...

      JavascriptContext.addJavascriptCall(
            FacesContext.getCurrentInstance(), "document,forms.myForm.submit()");    
}

您还可以在 Javascript 中动态创建表单元素,分配用户名/密码值并使用JavascriptContext.addJavascriptCall() 方法提交它

【讨论】:

  • 乱七八糟的文字是最重要的,抱歉我没注意。问题是我只想使用 icefaces 组件,这似乎不起作用,这就是我尝试使用 managedbean 的原因。
  • 好吧,你试试可以破解。使用id="iceformID" 属性提供您的&lt;ice:form&gt; 和ID。你可以在你的按钮后面使用这个 javascript 代码:document.getElementById('iceformID').submit(); 你可以在 onclick 事件上使用它,因为 有这个事件。或者,如果您真的想使用托管 Bean,请通过上述 actionListener 发送此代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
  • 2012-03-20
  • 2016-02-05
  • 2013-03-05
  • 1970-01-01
  • 2016-07-09
相关资源
最近更新 更多