Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- return target.register(DgtReader.class)
- .path("{dni}").resolveTemplate("dni",view.getDni())
- .request(MediaType.APPLICATION_JSON)
- .get(DgtBean.class);
- }
- @Override
- public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
- String dgt=ValidaDgt(value).getTipopermiso();
- String medio=view.getMedio();
- if(dgt.equals("A") && medio.equals("coche") ||( ValidaDgt(value).getTipopermiso().equals("B") && medio.equals("moto"))){
- throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error de validación", "El usuario no tiene el permiso necesario."));
- }
- public String getDni() {
- return dni;
- }
- public void setDni(String dni) {
- this.dni = dni;
- }
- public String getTipopermiso() {
- return tipopermiso;
- }
- public void setTipopermiso(String tipopermiso) {
- this.tipopermiso = tipopermiso;
- }
- @Override
- public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
- return DgtBean.class.isAssignableFrom(type);
- }
- @Override
- public DgtBean readFrom(Class<DgtBean> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, String> httpHeaders, InputStream entityStream) throws IOException, WebApplicationException {
- DgtBean dgt = new DgtBean();
- JsonParser parser = Json.createParser(entityStream);
- while (parser.hasNext()) {
- switch (parser.next()) {
- case KEY_NAME:
- String key = parser.getString();
- parser.next();
- switch (key) {
- case "dni":
- dgt.setDni(parser.getString());
- break;
- case "tipopermiso":
- dgt.setTipopermiso(parser.getString());
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- }
- return dgt;
- }
- }
- @Override
- public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
- return Usuarios.class.isAssignableFrom(type);
- }
- @Override
- public long getSize(DgtBean t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
- return -1;
- }
- @Override
- public void writeTo(DgtBean t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException {
- JsonGenerator gen = Json.createGenerator(entityStream);
- gen.writeStartObject()
- .write("dni", t.getDni())
- .write("tipopermiso", t.getTipopermiso())
- .writeEnd();
- gen.flush();
- }
- <body>
- <ui:composition template="./WEB-INF/template.xhtml">
- <ui:define name="content">
- <h:form>
- <f:event listener="#{registerView.validarPassword}" type="postValidate" />
- <p:panel header="Crear una nueva cuenta">
- <h:panelGrid id="grid" columns="3">
- <h:outputLabel for="nombre" value="Nombre:" style="font-weight:bold"/>
- <p:inputText id="nombre" value="#{registerView.nombre}" required="true"
- requiredMessage="Introduzca su nombre.">
- <f:validateLength maximum="30"/>
- </p:inputText>
- <p:message for="nombre"/>
- <h:outputLabel for="apellidos" value="Apellidos:" style="font-weight:bold"/>
- <p:inputText id="apellidos" value="#{registerView.apellidos}" required="true"
- requiredMessage="Introduzca sus apellidos.">
- <f:validateLength maximum="50"/>
- </p:inputText>
- <p:message for="apellidos"/>
- <h:outputLabel for="email" value="E-Mail:" style="font-weight:bold"/>
- <p:inputText id="email" value="#{registerView.email}" required="true"
- requiredMessage="Introduzca su email.">
- <f:validator validatorId="emailValidator" />
- </p:inputText>
- <p:message for="email"/>
- <h:outputLabel for="fechanac" value="Fecha de nacimiento:" style="font-weight:bold"/>
- <p:inputText type="Date" id="fechanac" value="#{registerView.fechanac}" required="true"
- requiredMessage="Introduzca su fecha de nacimiento.">
- <f:validator validatorId="ageValidator"/>
- <f:validateLength maximum="10"/>
- </p:inputText>
- <p:message for="fechanac"/>
- <h:outputLabel for="dni" value="DNI:" style="font-weight:bold"/>
- <p:inputText id="dni" value="#{registerView.dni}" required="true"
- requiredMessage="Introduzca su DNI.">
- <f:validateLength minimum="9" maximum="9"/>
- </p:inputText>
- <p:message for="dni"/>
- <h:outputLabel for="movil" value="Móvil:" style="font-weight:bold"/>
- <p:inputText id="movil" value="#{registerView.movil}" required="true" onkeypress="if (event.which < 48 || event.which > 57) return false;">
- <f:convertNumber integerOnly="true"/>
- <f:validateLength minimum="9" maximum="9"/>
- </p:inputText>
- <p:message for="movil"/>
- <h:outputLabel for="localidad" value="Localidad:" style="font-weight:bold"/>
- <p:inputText id="localidad" value="#{registerView.localidad}" required="true">
- <f:validateLength maximum="100"/>
- </p:inputText>
- <p:message for="localidad"/>
- <h:outputLabel for="password" value="Contraseña:" style="font-weight:bold"/>
- <p:password id="password" value="#{registerView.password}" feedback="true"
- required="true" requiredMessage="Introduzca su contraseña."
- validatorMessage="La contraseña debe contener al menos un número,
- así como caracteres tanto en mayúscula como en minúscula, además de
- contar con una longitud comprendida entre 6 y 20 caracteres alfanuméricos">
- <f:validateRegex pattern="((?=.*d)(?=.*[a-z])(?=.*[A-Z]).{6,20})" />
- </p:password>
- <p:message for="password"/>
- <h:outputLabel for="confirmpassword" value="Confirmar contraseña:" style="font-weight:bold"/>
- <p:password id="confirmpassword" feedback="true"
- value="#{registerView.confirmPassword}" required="true"
- requiredMessage="Por favor, confirma tu contraseña."/>
- <p:message for="confirmpassword"/>
- <h:outputLabel for="medio" value="Medio:" style="font-weight:bold"/>
- <h:selectOneMenu id="medio" value="#{registerView.medio}" required="true" requiredMessage="Introduzca el transporte.">
- <f:selectItem itemLabel="Coche" itemValue="coche"/>
- <f:selectItem itemLabel="Moto" itemValue="moto"/>
- **Aquí se invocaría la validación pero me salta nullpointer por lo que he mencionado**
- </h:selectOneMenu>
- </h:panelGrid>
- <p:commandButton value="Registrarse" ajax="false" action="#{registerView.register}"/>
- <p:growl id="message" showDetail="true" />
- <p:commandButton value="Ayuda" actionListener="#{dialogView.confirmDel}" update="message">
- <p:confirm header="Ayuda" message="Longitudes máximas permitidas: Nombre=30;Apellidos=50 ; Fecha de nacimiento=10; Localidad=100; Móvil=9; DNI=9; Email=255; Password=mínimo 6 y máximo 20 caracteres alfanuméricos incluyendo cifras, mayúsculas y minúsculas" icon="ui-icon-alert" />
- </p:commandButton>
- <p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
- </p:confirmDialog>
- </p:panel>
- </h:form>
- </ui:define>
- </ui:composition>
- </body>
Add Comment
Please, Sign In to add comment