jsf - 将 HTTP GET 参数传递给 JSF bean 方法

标签 jsf jsf-2 primefaces

我想将 GET 参数从 URL 传递给通过单击按钮调用的方法。
例如我有网址:/someurl/semepage.xhtml?id=1 .我的页面上有一个按钮:

<p:commandButton value="say it" action="#{test.sayIt(param['id'])}"/>

bean 看起来像:
@ManagedBean
@ViewScoped
public class Test{
    public void sayIt(String value){
        System.out.println(value);
    }
}

但是当我点击按钮时,它只是没有反应。为什么会这样?方法甚至没有被调用。

如果我像这里一样静态传递参数:
<p:commandButton value="say it" action="#{test.sayIt('someword')}"/> 

一切都好。

最佳答案

这是一种方法 - 使用 <f:param , 像这样:

<h:commandButton value="Test The Magic Word" action="#{test.sayIt}">
    <f:param name="id" value="#{param['id']}"></f:param>
    <f:ajax execute="something" render="something_else"></f:ajax>
</h:commandButton>

在你的 bean 里
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext()
        .getRequest();

String id = request.getParameter("id");

关于jsf - 将 HTTP GET 参数传递给 JSF bean 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22281584/

相关文章:

javascript - 被 JavaScript 隐藏的必需 JSF 输入组件仍然经过验证

JSF - 在单个 bean 中在 @ManagedProperty 上设置多个值

java - 有可用的简单 JSF 命令按钮示例吗?

css - 在标签 p :inputText 中使用属性 moz-transition 和 webkit-transition

css - 如何更改 <p :selectOneMenu>? 的悬停/突出显示元素的背景颜色

java - jsf-api-2.2.0-m05.jar 和 jsf-impl-2.2.0-m05.jar 中的 javax.faces-2.1.14.jar 有什么区别

validation - 当必填输入字段变空时,不会触发 PrimeFaces ajax 更新

java - JSF h :commandButton 的问题

java.lang.IllegalStateException : Parent was not null, 但此组件不相关

java - 单元测试 jsf 2.0 Managed Bean 的最佳方式