Cannot successfully update backing bean when not in initial page

UI Components for JSF
Post Reply
auvy1027
Posts: 1
Joined: 05 Aug 2019, 04:57

27 Aug 2019, 10:13

I am new with JSF/Primefaces and now, I'm trying to solve this problem for days. I have a page with a commandLink which opens a dialog with a TreeTable that displays values from the backing bean. The value of the bean is updated depending on the product.url. My problem is, I get a successful result when I click on the commandLink from the initial page(/products.xhtml?...ver=2019.000), but when I'm on the other redirected links(/products.xhtml?...ver=2018.000), it just won't work. The value of #{DownloadView.path} is still null.

Here's a snippet of my .xhtml with the commandLink:
<div id="features">
<h:form id="form">
<div class="feature-icon fadeInDown animated" style="margin:0px 35px">
<p:commandLink action="/products.xhtml?faces-redirect=true&amp;ver=2019.000" value="2019.000" style="#{fn:startsWith(ProductsView.actVer, '2019.000') ? 'background-color: #e91e63;' : ''}" />
</div>
<div class="feature-icon fadeInDown animated" style="margin:0px 35px">
<p:commandLink action="/products.xhtml?faces-redirect=true&amp;ver=2018.000" value="2018.000" style="#{fn:startsWith(ProductsView.actVer, '2018.000') ? 'background-color: #e91e63;' : ''}" />
</div>
</h:form>
</div>

<div id="promotion" class="clearfix">
. . .
<ui:fragment rendered="#{!empty product.url}">
<ui:fragment rendered="#{fn:startsWith(product.url, 'file')}">
<h:outputText value="#{product.url}"/>
<p:commandLink action="#{DownloadView.listFiles}" update=":download-form:downloadPanel" oncomplete="PF('downloadDialog').show()" title="Details" >
<h:outputText value="#{product.name}" />
<f:setPropertyActionListener target="#{DownloadView.path}" value="#{product.url}" />
</p:commandLink>
</ui:fragment>
</ui:fragment>
. . .
</div>

Here's my dialog:
<h:form id="download-form" >
<p:dialog id="dialog" header="Details" showEffect="fade" widgetVar="downloadDialog" modal="true" resizable="false" dynamic="true">
<p:outputPanel id="downloadPanel">
<p:treeTable value="#{DownloadView.root}" var="download" style="margin-top:0" scrollable="true" scrollHeight="300">
<f:facet name="header">
Document Viewer
</f:facet>
<p:column headerText="Name">
<a href="#{download.path}" > <h:outputText value="#{download.name}" /> </a>
</p:column>
<p:column headerText="Location">
<h:outputText value="#{download.path}" />
</p:column>
</p:treeTable>
</p:outputPanel>
<p:ajax event="open" listener="#{DownloadView.reset()}"/>
</p:dialog>
</h:form>

Here's my DownloadView class:
public class DownloadView {

private TreeNode root;

private String path;

private DownloadBI downloadBI;

@PostConstruct
public void init() {
downloadBI = new DownloadBI();
}

public void listFiles() {
downloadBI.setPath(path);
this.root = downloadBI.getFilesTreeNode();
}

public TreeNode getRoot() {
return root;
}

public void setRoot(TreeNode root) {
this.root = root;
}

public String getPath() {
return path;
}

public void setPath(String path) {
this.path = path;
}

public void reset() {
this.path = "";
this.root = null;
}
}

When I click on the commandLink from the initial page (/products.xhtml?faces-redirect=true&amp;ver=2019.000), the TreeTable is populated and checking the logs, the path is successfully set with the correct value. But, if I click on the commandLink from other page, it just won't work, no change on value. Any idea to resolve this problem is greatly appreciated! Thank you!

kukeltje
Expert Member
Posts: 9605
Joined: 17 Jun 2010, 13:34
Location: Netherlands

02 Sep 2019, 09:04

Please use [ code ] .... [ /code ] tags (without the spaces) to format and indent your code. It is hard to read otherwise. And please make it a 'mcve': https://stackoverflow.com/help/mcve

kukeltje
Expert Member
Posts: 9605
Joined: 17 Jun 2010, 13:34
Location: Netherlands

02 Sep 2019, 09:16

And what is a 'redirected link'? If you redirect you are responsible for passing the parameters on.

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 32 guests