You can use the faces-config.xml configuration to enter an identifier from a param map.
For this simple bean:
public class BeanWithId implements Serializable { private String id; private String info; private void populateInfo() { info = "Some info from data source for id=" + id; } public String getId() { return id; } public void setId(String id) { this.id = id; populateInfo(); } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public String save() { System.out.println("Saving changes to persistence store"); return null;
You can enter an identifier using this definition:
<managed-bean> <managed-bean-name>beanWithId</managed-bean-name> <managed-bean-class>datasource.BeanWithId</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> <managed-property> <property-name>id</property-name> <property-class>java.lang.String</property-class> <value>
Lyceum form:
<h:form> <p>ID: <h:outputText value="#{beanWithId.id}" /></p> <p>Info: <h:inputText value="#{beanWithId.info}" /></p> <p><h:commandLink action="#{beanWithId.save}" value="Save"> <f:param name="ID" value="#{param.ID}" /> </h:commandLink></p> </h:form>
This is not the only way to do this (you can look up the ID using, for example, FacesContext ).
source share