简体   繁体   中英

Initialize bean value from another bean (once)

I would like to set a value of bean from another bean once a page is displayed. The target dataTable is included because it is also used in another context. Like I said before, there are two beans involved:

  • bean1 'gets' a parameter, will load an object and display some properties.
  • bean2 is the bean that is responsible for the filtering / search in the dataTable.

relevant parts:

<f:metadata>
  <f:viewParam name="objectId" value="#{bean1.objectId}" />
</f:metadata>
<!-- resolving works -->
#{bean1.object.name}

included search:

<p:dataTable>...<p:inputText value="#{bean2.value}">...</p:dataTable>

How to assign (a substring of) bean1.object.name to the value of the input text once at page request but keep the existing value attribute of the field? I don't want to mess up the included page but would prefer to solve it "outside" in my including jsf/xhtml file.

The best way to do this is using javascript.
Define a input hidden tag to hold the value of #{bean1.object.name}.
Now in javascript get the value of this field using document.getElementById("").value
Take the substring and assign to input text field using javascript.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM