使用以下带有素数面的代码6.0
<p:diagram value="#{myBean.model}" var="m" >
<f:facet name="element">
<h:commandButton value="#{m.id}" action="#{myBean.test(m.id)}"/>
</f:facet>
</p:diagram>
和
@Named
@SessionScoped
public class MyBean implements Serializable {
.....
private DefaultDiagramModel model;
//getter and setter
public String test(int id) {
System.out.println("ID IS : " + id);
return null;
}
....
}
我得到按钮标签上的id值(在xhtml页面上呈现(。
但我总是得到的号码
ID为:0
在IDE控制台上
如果我用action="#{myBean.test(4)}"
更改代码,我会进入IDE控制台
4
如果我用action="#{myBean.test(6)}"
更改代码,我会进入IDE控制台
6
但当我回到action="#{myBean.test(m.id)}"
时,我在IDE控制台中总是得到编号0
但是,如果id在xhtml页面上的按钮标签上表现良好,则该值
引发了非异常!
请帮忙吗?
了解如何通过-hcommandbutton传递参数-along。我已经用<f:param>
检查了这个例子,它在您的情况下就像一个符咒。
所以在你的情况下
<p:diagram value="#{myBean.model}" var="m" >
<f:facet name="element">
<h:commandButton value="#{m.id}" action="#{myBean.test}">
<f:param name="elementId" value="#{m.id}" />
</h:commandButton>
</f:facet>
</p:diagram>
和在豆
public String test() {
String elementId= FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("elementId");
System.out.println("ID IS : " + elementId);
return null;
}