The following example produces a validation error when it is used in p:column in p:dataTable:
Code: Select all
http://www.primefaces.org/showcase-labs/ui/selectOneMenu.jsf
<p:selectOneMenu value="#{autoCompleteBean.selectedPlayer1}" effect="fade" converter="player">
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItems value="#{autoCompleteBean.players}" var="player" itemLabel="#{player.name}" itemValue="#{player}"/>
</p:selectOneMenu>
Is there a way to use p:ajax to bypass validation?
I am using:
Code: Select all
// My dataTable that extends org.primefaces.model.LazyDataModel
import javax.inject.Named;
import javax.enterprise.context.SessionScope;
@SessionScoped
@Named
public class NetworkUserLazy extends LazyModel<NetworkUser> implements Serializable { ... }
// The is my player objject
@Entity
public class NetworkInterface implements Serializable {
...
@Override
public boolean equals(Object object) {
if (object == this) {
return true;
}
if (!(object instanceof NetworkInterface)) {
return false;
}
NetworkInterface other = (NetworkInterface) object;
if (this.id == other.id) {
return true;
}
return false;
}
}
// My player converter
import javax.enterprise.context.RequestScoped;
@RequestScoped
@FacesConverter("networkInterfaceConverter")
public class NetworkInterfaceConverter implements Converter, Serializable {
@Inject
private NetworkInterfaceService service;
@Inject Logger log;
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (null == value || "".equals(value)) {
return null;
}
Object o = service.find(value);
return o;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (null == value || "".equals(value)) {
return null;
}
// Convert the Foo object to its unique String representation.
NetworkInterface ni = (NetworkInterface) value;
return String.valueOf(ni.getId());
}
}