У меня есть проблема, чтобы изменить сообщения проверки в форме, я провел некоторое исследование и выяснил об ограничениях проверки.
Во-первых, я хотел проверить, что данные не были нулевыми, поэтомуЯ использовал ограничение @NotNull, но оно работает не со всеми, только с одним в коде, и я не могу понять, почему.
Я использую JPA 2.1 EclipseLink
Вотbean:
package cl.beans;
import cl.pojos.Empresa;
import cl.pojos.Hardware;
import cl.pojos.IndiceHardwareFabricante;
import cl.pojos.Software;
import cl.services.EmpresaFacadeLocal;
import cl.services.HardwareFacadeLocal;
import cl.services.IndiceHardwareFabricanteFacadeLocal;
import cl.services.SoftwareFacadeLocal;
import java.util.List;
import javax.ejb.EJB;
import javax.inject.Named;
import javax.enterprise.context.RequestScoped;
import javax.validation.constraints.NotNull;
@Named(value = "productoBean")
@RequestScoped
public class ProductoBean {
@EJB
private EmpresaFacadeLocal empresaFacade;
@EJB
private IndiceHardwareFabricanteFacadeLocal indiceHardwareFabricanteFacade;
@EJB
private SoftwareFacadeLocal softwareFacade;
@EJB
private HardwareFacadeLocal hardwareFacade;
// Variables generales de producto
private int id;
private String nombre;
private Integer costoCliente;
private Integer costo;
private int idFabricante;
// Variables para crear un Hardware
private String modelo;
private Integer numeroSerie;
private String tipoHardware;
//--
// Variables para crear un Software
private String tipoSoftware;
private int tipoProducto;
public ProductoBean() {
}
public List<Software> getSoftwares(){
return softwareFacade.findAll();
}
public List<Hardware> getHardwares(){
return hardwareFacade.findAll();
}
public String getFabricanteHardware(int idHard){
IndiceHardwareFabricante indi = indiceHardwareFabricanteFacade.find(idHard);
Empresa emp = empresaFacade.find(indi.getIdFabricante());
return emp.getNombrePersona();
}
public String getNombreFabricante(int idFab){
Empresa emp = empresaFacade.find(idFab);
return emp.getNombrePersona();
}
public String crearProducto(){
if (tipoProducto == 1) {
int idAutomatico = hardwareFacade.count();
idAutomatico = idAutomatico + 1;
Hardware h = new Hardware();
h.setIdHardware(idAutomatico);
h.setNombreHardware(nombre);
h.setModelo(modelo);
h.setNumeroSerie(numeroSerie);
h.setCostoClienteHardware(costoCliente);
h.setCostoHardware(costo);
IndiceHardwareFabricante indiHardFab = new IndiceHardwareFabricante();
indiHardFab.setIdFabricante(idFabricante);
indiHardFab.setIdHardware(h.getIdHardware());
indiceHardwareFabricanteFacade.create(indiHardFab);
hardwareFacade.create(h);
nombre = null;
return "/ingresarProducto.xhtml?faces-redirect=true";
} else if (tipoProducto == 2) {
int idAutomatico = softwareFacade.count();
idAutomatico = idAutomatico + 1;
Software s = new Software();
s.setIdFabricante(idFabricante);
s.setNombreSoftware(nombre);
s.setIdSoftware(idAutomatico);
Software soft = softwareFacade.find(id);
soft.getCostoClienteSoftware();
softwareFacade.create(s);
nombre = null;
return "/ingresarProducto.xhtml?faces-redirect=true";
}
return "/ingresarProducto.xhtml?faces-redirect=false";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@NotNull(message = "Debe ingresar un nombre.")
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
@NotNull(message = "Debe ingresar un nùmero de serie.")
public Integer getNumeroSerie() {
return numeroSerie;
}
public void setNumeroSerie(Integer numeroSerie) {
this.numeroSerie = numeroSerie;
}
public String getTipoHardware() {
return tipoHardware;
}
public void setTipoHardware(String tipoHardware) {
this.tipoHardware = tipoHardware;
}
public String getTipoSoftware() {
return tipoSoftware;
}
public void setTipoSoftware(String tipoSoftware) {
this.tipoSoftware = tipoSoftware;
}
public int getIdFabricante() {
return idFabricante;
}
public void setIdFabricante(int idFabricante) {
this.idFabricante = idFabricante;
}
public int getTipoProducto() {
return tipoProducto;
}
public void setTipoProducto(int tipoProducto) {
this.tipoProducto = tipoProducto;
}
public Integer getCostoCliente() {
return costoCliente;
}
public void setCostoCliente(Integer costoCliente) {
this.costoCliente = costoCliente;
}
public Integer getCosto() {
return costo;
}
public void setCosto(Integer costo) {
this.costo = costo;
}
}
Как видите, я добавил @NotNull для "nombre" и "número de serie".
@NotNull(message = "Debe ingresar un nombre.")
public String getNombre() {
return nombre;
}
.
@NotNull(message = "Debe ingresar un nùmero de serie.")
public Integer getNumeroSerie() {
return numeroSerie;
}
А вот так выглядят сообщения проверки на странице:
Изображение результата в XHMTL
Спасибо за помощь!