请在下面找到我的代码:p:datatable,其中h:commandlink是其列之一:
public interface ProgressListener {
public void onProgressChange(long progress);
}
public class CustomVideoRenderer extends MediaCodecVideoTrackRenderer {
long progress = 0;
private final CopyOnWriteArraySet<ProgressListener> progressListeners = new CopyOnWriteArraySet();
// [...]
// Skipped constructors
// [...]
public void doSomeWork(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException {
super.doSomeWork(positionUs, elapsedRealtimeUs);
long tmpProgress = videoPlayer.getBufferedPercentage();
if (tmpProgress != this.progress) {
this.progress = tmpProgress;
for (ProgressListener progressListener : this.progressListeners) {
progressListener.onProgressChange(progress);
}
}
}
public void addProgressListener(ProgressListener listener) {
this.progressListeners.add(listener);
}
}
我想访问Backing Bean ListBean中的数据表行,其中使用action =&#34;#{listBean.getDetails}&#34;单击h:commandLink;不使用数据表绑定属性。
我的Backingbean是会话作用域,我们正在使用jsf 2.1.7 Mojarra。
答案 0 :(得分:3)
但最重要的是,看看PrimeFaces展示中的第一个选择示例http://www.primefaces.org/showcase/ui/data/datatable/selection.xhtml
答案 1 :(得分:0)
将所选行作为参数传递给方法,例如
<h:commandLink value="#{list.actionRequired}" action="#{listBean.getDetails(list)}" styleClass="linkStyle"></h:commandLink>
并更改getDetails
以接受元素类型listBean.lazyDatalist
答案 2 :(得分:0)
var
包含用于填充每一行的对象。您可以像#{listBean.getDetails(list)}
一样在行动中传递它。别忘了将此参数添加到bean方法中。
顺便说一句:list
非常误导。您最好将其命名为element
或使用具体的实体名称命名,可能是employee
。您的团队将不胜感激。