【问题标题】:Passing an object from p:dataTable to Controller on rowSelect in JSF将对象从 p:dataTable 传递到 JSF 中 rowSelect 上的控制器
【发布时间】:2020-05-03 11:42:22
【问题描述】:

我正在尝试将填充了项目表的对象传递给控制器​​。然后我使用 JS alert 来验证成功。但是我没有从桌子上传递任何东西。

任何帮助将不胜感激。

issues.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...这都不起作用...

【问题讨论】:

  • 请先与 PrimeFaces 展示柜进行比较(所有作品都在那里并且已经存在了很长时间)。之后,搜索(使用'primefaces datatable row selection ajax'(在搜索条件中添加'site:stackoverflow.com'有帮助)并开始阅读。如果找不到原因,则创建一个minimal reproducible example,发布它在这里,我们可以进行调查。“未能通过任何东西”有点奇怪,没有调用方法?对象“空”?然后更具体地搜索这些术语。(哦,题外话,private Issues issue; 很奇怪,复数和单)
  • 你的 primefaces 版本是多少?
  • 尝试从 ajax 标记中删除更新和 oncomplete 并使用视图范围的 bean?

标签: primefaces jsf-2 listener


【解决方案1】:

尝试使用process="@this" 并将范围更改为 @ViewScoped。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2016-11-25
    • 2017-03-31
    相关资源
    最近更新 更多