primefaces - 将对象从 p:dataTable 传递到 JSF 中 rowSelect 上的控制器
问题描述
我正在尝试将填充了项目表的对象传递给控制器。然后我使用 JS alert 来验证成功。但是我没有从桌子上传递任何东西。
任何帮助,将不胜感激。
问题.xhtml
<p:dataTable var="issue" value="#{issuesController.findWithParameter(issues, startenddates)}" styleClass="list" selectionMode="single" selection="#{issuesController.issue}" rowKey="#{issue.id}" >
<p:ajax event="rowSelect" update="mainForm" listener ="#{issuesController.onRowSelect}"
oncomplete="alert(args.name)"/>
<p:column headerText="Id" id = "head_id" style="width:0%; padding: 0px;">
<h:outputText value="#{issue.id}"/>
</p:column>
<p:column headerText="Child" id = "head_child" style="width:12%;">
<h:outputText value="#{issue.child}"/>
</p:column>
...
</p:dataTable>
问题控制器.java
@Named("issuesController")
@RequestScoped
public class IssuesController implements Serializable {
@Inject
private Issues issue;
....
public void onRowSelect(SelectEvent event) throws IOException {
Issues i = (Issues) event.getObject();
String toWrite;
if (i == null) {
toWrite = "Item is not recieved";
} else {
toWrite = i.toString();
}
RequestContext.getCurrentInstance().addCallbackParam("name", toWrite);
}
问题.java
@Named("issues")
@SessionScoped
@XmlRootElement
public class Issues implements Serializable {
....
}
我尝试了不同类型的范围,尝试了 f:attribute ......这都不起作用......
解决方案
尝试使用process="@this"
并将范围更改为
@ViewScoped
.
推荐阅读
- vba - 如何使用 VBA 在 Visio 中获取形状类型?
- javascript - ThreeJs OrbitControls:如何在不禁用键平移的情况下禁用鼠标平移?
- python - Flask、SocketIO 和 Docker 网络::ERR_CONTENT_LENGTH_MISMATCH
- javascript - 无外部包的纯 JS 水平点导航
- android-studio - 在哪里选项 - > 新建 > Android Studio 上的矢量资产?
- mysql - 如何合并具有相同列名的表
- swift - 带有内部阴影的自定义圆形文本字段没有得到正确的布局
- javascript - ScrollTo 在导航中工作,但所有 href 都需要它
- python - 如何编写包装器来修复函数雅可比的任意参数
- ruby-on-rails - ocra ruby 转换为 exe 如何克服所需的 lib