本人刚刚接触jsf 对jsf不了解 想问下
怎样在jsf页面中直接调用后台管理bean中带参数的方法比如我下面写的当我点这个按钮的时候调用后台管理bean中的getlist()方法,  当后台管理bean中的这个方法有参数,而这个参数要从页面中传递过去该怎么写呢????  我需要的是单击按钮调用方法的同时传递参数,大侠们指点下了,在线等!!!
<h:commandButton action="#{pagebean.getlist}" value="显示"></h:commandButton>

解决方案 »

  1.   

    不能把参数通过http方式提交吗 在后台页面采用request.getParameter赋值给bean
      

  2.   

    把参数通过http方式提交    获取页面值然后赋值给bean  你试试可以吗   我记得以前好像用过~~~
      

  3.   

    标准是不支持action调用带参数的方法的
    只能采用变通的办法。
    比如用f:param传递参数给后台,这样,你就能在函数里获取了
      

  4.   

    但注意f:param只能对commandLink起作用,
    用f:attribute比较好例子如下:
    <h:commandButton value="Press here" actionListener="#{myBean.action}">
            <f:attribute name="attrname1" value="attrvalue1" />
            <f:attribute name="attrname2" value="attrvalue2" />
            ...
    </h:commandButton>    public void action(ActionEvent event) 
        {   
            String attrvalue1 = (String) event.getComponent().getAttributes().get("attrname1");
            String attrvalue2 = (String) event.getComponent().getAttributes().get("attrname2");
            ...
        }
      

  5.   

    f:attribute还有个注意点就是别使用标准的组件属性名
    比如:id,name,binding等等,会有冲突
      

  6.   

    <a4j:commandButton value="编辑" oncomplete="Richfaces.showModalPanel('Edit_Panel'); return false; " reRender="PANEL_INFO,TABLE_LIST">
        <f:param name="DEPART_ID" value="#{item.id}"></f:param>
        <f:param name="OPERATION" value="EDIT"></f:param>
     </a4j:commandButton>后台 Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
         String depart_ID=(String) params.get(StaticString.DEPART_ID) ;
         String OPERATION=(String) params.get(StaticString.OPERATION);
      

  7.   

    可以用最简单的input button调用一个隐藏的t:commandLink
    eg:
    <input type="button" onclick="getElementById('back').click();" value="back"
    class="button_submit" /> <t:commandLink forceId="true" id="back" action="back" value="#" style="display:none"
    styleClass="button_submit" >
    <f:param name="isTam" value="yes" />
    </t:commandLink>