Jsf 通过<;p:selectOneListbox变量=“0”;中国"&燃气轮机;作为<;h:commandLink行动>;
我在commandLink中将对象从Jsf 通过<;p:selectOneListbox变量=“0”;中国"&燃气轮机;作为<;h:commandLink行动>;,jsf,primefaces,commandlink,selectonelistbox,Jsf,Primefaces,Commandlink,Selectonelistbox,我在commandLink中将对象从actionListener传递到支持bean时遇到问题。我拥有的是一个beanMeasureBean和一个使用该bean的xhtml文件 在xhtml中,我有: <p:selectOneListbox var="ch"> <f:selectItems value="#{MeasureBean.checkpoints}" var="cp" itemValue="#{cp}" /> <p:column>
actionListener
传递到支持bean时遇到问题。我拥有的是一个beanMeasureBean
和一个使用该bean的xhtml
文件
在xhtml中,我有:
<p:selectOneListbox var="ch">
<f:selectItems value="#{MeasureBean.checkpoints}" var="cp" itemValue="#{cp}" />
<p:column>
<h:outputText value="#{ch.name}" />
</p:column>
<p:column>
<h:commandLink actionListener="#{MeasureBean.onCheckpointRemoved(ch)}">
<h:graphicImage library="#{ctx.theme}" name="images/delete.gif" />
<f:ajax event="click" />
</h:commandLink>
</p:column>
</p:selectOneListbox>
问题是,无论我是否使用标记
,bean中方法的参数viewCheckpoint总是空的。我需要将该参数传递给bean。它不必是整个对象,只允许传递检查点的id。我也尝试过的是:
<h:commandLink actionListener="#{MeasureBean.onCheckpointRemoved(cp)}">
(cp
而不是ch
)。但没有区别
请帮忙,
Mateusz您忘记设置
的值。此外,您还必须创建一个转换器
您可以在中查看转换器示例
谢谢佩利森。我试过你的建议,但现在列表框完全没有呈现内容。盒子里没有东西。我认为在列表框的定义中需要
标记。请再次检查答案!现在这是一个更准确的拍摄:)谢谢!我也是这么做的,不是吗?唯一的区别是价值和转换器的存在。。。编辑:我用JS“黑客”解决了这个问题。我添加了
,我用json-click事件设置了该值,然后调用bean的方法<代码>现在它就像一个符咒
<h:commandLink actionListener="#{MeasureBean.onCheckpointRemoved(cp)}">
<p:selectOneListbox var="ch" value="#{MeasureBean.checkPointTest}" converter="checkPointConverter">
<f:selectItems value="#{MeasureBean.checkpoints}" var="cp" itemValue="#{cp}" />
<p:column>
<h:outputText value="#{ch.name}" />
</p:column>
<p:column>
<h:commandLink actionListener="#{MeasureBean.onCheckpointRemoved(ch)}">
<h:graphicImage library="#{ctx.theme}" name="images/delete.gif" />
<f:ajax event="click" />
</h:commandLink>
</p:column>
</p:selectOneListbox>
Checkpoint checkPointTest;
// getter/setter....
public void onCheckpointRemoved(Checkpoint viewCheckpoint) {
System.out.println(viewCheckpoint);
// TODO
}