jsf页面传参问题

有这样一个需求,从一个页面跳到另一个页面
actionListener="#{A_Bean.getParam}" styleClass="button_1" immediate="true">

/h:commandButton
我需要传递一个参数#{B_Bean.param}到后台A_Bean中,给了value,如下:

public void getParam(ActionEvent e)
{
System.out.println("getParam>>>>"+(String) e.getComponent().getAttributes().get("myParam"));
String value = (String) e.getComponent().getAttributes().get("myParam");
}

但控制台打印的是getParam>>>>null,也就是#{B_Bean.param}的值没传过来,这个值确定有;并且如果把#{B_Bean.param}换成一个字符串的话就可以传过去,请各位高手解释

4个回答

跟JSF的bind机制有关系吧。
B的值bind到页面后,只有B可以观察到它。所以你的处理逻辑应该放到B中。
或者在页面Render以前就把B的值给A,让A去bind页面值。

#{B_Bean.param}显示打印下,若直接从bean里面取值要用这种方式

哥们,从你描述的来看,肯定是在按钮执行的时候#{B_Bean.param}值是不存在的,你可以打印印一下!

还有一种可能就是,jsf的按钮在单击时,有时间段,单击之前,单击之后,ation相应之后,等等,我想,#{B_Bean.param}在某个时段被修改了,为nulll了

在Controller层处理啊,不要在View层为不同的Bean交叉组装数据。感觉你们后台的数据结构设计有点不合理。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐