将参数传递给a4j:ajax

 劲朋_511 发布于 2023-02-07 06:39

我们正在从jsf 1.2升级到jsf 2.我们正在使用apache myfaces 2.1和富面4.3.

以下是xhtml代码:

迁移之前:


                        
                                
                              

我们传递一个参数,并在actionListener方法中接受参数: (String)context.getExternalContext().getRequestParameterMap().get("name1");

迁移后:


                                  

我想将参数传递给bean.processInput方法,该方法具有以下签名:

public void processInput(AjaxBehaviorEvent event){

根据这篇文章 - 在f:ajax中传递参数的问题,我们不能使用(它也不工作),我们没有使用EL 2.2来排除方法签名中的传递参数.

由于我们不能使用context.getApplication().evaluateExpressionGet由于我们的xhtml页面中的约束只有可用选项. 但是这需要在bean中定义一个需要代码更改的变量.

所以我的问题是我们可以在第二种情况下将参数从UI传递给侦听器,而无需更改代码.

1 个回答
  • 你可以f:attribute像这样使用:

    <h:selectBooleanCheckbox id="comp1" value="#{bean.select}">
        <a4j:ajax event="click" listener="#{bean.processInput}" execute="@this" render="compId"/>              
        <f:attribute name="name" value="paramValue" /> 
    </h:selectBooleanCheckbox>
    

    并在你的bean中使用它:

    public void processInput(AjaxBehaviorEvent event)
    {
        System.out.println(event.getComponent().getAttributes().get("name"));
    }
    

    2023-02-07 07:14 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有