Guest User

Untitled

a guest
Jun 21st, 2018
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.46 KB | None | 0 0
  1. return target.register(DgtReader.class)
  2. .path("{dni}").resolveTemplate("dni",view.getDni())
  3. .request(MediaType.APPLICATION_JSON)
  4. .get(DgtBean.class);
  5. }
  6.  
  7.  
  8. @Override
  9. public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
  10. String dgt=ValidaDgt(value).getTipopermiso();
  11. String medio=view.getMedio();
  12. if(dgt.equals("A") && medio.equals("coche") ||( ValidaDgt(value).getTipopermiso().equals("B") && medio.equals("moto"))){
  13. throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error de validación", "El usuario no tiene el permiso necesario."));
  14. }
  15.  
  16. public String getDni() {
  17. return dni;
  18. }
  19.  
  20. public void setDni(String dni) {
  21. this.dni = dni;
  22. }
  23.  
  24. public String getTipopermiso() {
  25. return tipopermiso;
  26. }
  27.  
  28. public void setTipopermiso(String tipopermiso) {
  29. this.tipopermiso = tipopermiso;
  30. }
  31.  
  32. @Override
  33. public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
  34. return DgtBean.class.isAssignableFrom(type);
  35. }
  36.  
  37. @Override
  38. public DgtBean readFrom(Class<DgtBean> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, String> httpHeaders, InputStream entityStream) throws IOException, WebApplicationException {
  39. DgtBean dgt = new DgtBean();
  40. JsonParser parser = Json.createParser(entityStream);
  41. while (parser.hasNext()) {
  42. switch (parser.next()) {
  43. case KEY_NAME:
  44. String key = parser.getString();
  45. parser.next();
  46. switch (key) {
  47. case "dni":
  48. dgt.setDni(parser.getString());
  49. break;
  50. case "tipopermiso":
  51. dgt.setTipopermiso(parser.getString());
  52. break;
  53.  
  54. default:
  55. break;
  56. }
  57. break;
  58. default:
  59. break;
  60. }
  61. }
  62. return dgt;
  63. }
  64. }
  65.  
  66. @Override
  67. public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
  68. return Usuarios.class.isAssignableFrom(type);
  69. }
  70.  
  71. @Override
  72. public long getSize(DgtBean t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
  73. return -1;
  74. }
  75.  
  76. @Override
  77. public void writeTo(DgtBean t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException {
  78. JsonGenerator gen = Json.createGenerator(entityStream);
  79. gen.writeStartObject()
  80. .write("dni", t.getDni())
  81. .write("tipopermiso", t.getTipopermiso())
  82.  
  83.  
  84. .writeEnd();
  85. gen.flush();
  86. }
  87.  
  88. <body>
  89.  
  90. <ui:composition template="./WEB-INF/template.xhtml">
  91.  
  92. <ui:define name="content">
  93. <h:form>
  94.  
  95. <f:event listener="#{registerView.validarPassword}" type="postValidate" />
  96. <p:panel header="Crear una nueva cuenta">
  97. <h:panelGrid id="grid" columns="3">
  98. <h:outputLabel for="nombre" value="Nombre:" style="font-weight:bold"/>
  99. <p:inputText id="nombre" value="#{registerView.nombre}" required="true"
  100. requiredMessage="Introduzca su nombre.">
  101. <f:validateLength maximum="30"/>
  102. </p:inputText>
  103. <p:message for="nombre"/>
  104.  
  105.  
  106. <h:outputLabel for="apellidos" value="Apellidos:" style="font-weight:bold"/>
  107. <p:inputText id="apellidos" value="#{registerView.apellidos}" required="true"
  108. requiredMessage="Introduzca sus apellidos.">
  109. <f:validateLength maximum="50"/>
  110. </p:inputText>
  111. <p:message for="apellidos"/>
  112.  
  113. <h:outputLabel for="email" value="E-Mail:" style="font-weight:bold"/>
  114. <p:inputText id="email" value="#{registerView.email}" required="true"
  115. requiredMessage="Introduzca su email.">
  116. <f:validator validatorId="emailValidator" />
  117.  
  118. </p:inputText>
  119.  
  120. <p:message for="email"/>
  121.  
  122. <h:outputLabel for="fechanac" value="Fecha de nacimiento:" style="font-weight:bold"/>
  123. <p:inputText type="Date" id="fechanac" value="#{registerView.fechanac}" required="true"
  124. requiredMessage="Introduzca su fecha de nacimiento.">
  125. <f:validator validatorId="ageValidator"/>
  126. <f:validateLength maximum="10"/>
  127. </p:inputText>
  128.  
  129. <p:message for="fechanac"/>
  130.  
  131. <h:outputLabel for="dni" value="DNI:" style="font-weight:bold"/>
  132. <p:inputText id="dni" value="#{registerView.dni}" required="true"
  133. requiredMessage="Introduzca su DNI.">
  134.  
  135. <f:validateLength minimum="9" maximum="9"/>
  136.  
  137. </p:inputText>
  138.  
  139. <p:message for="dni"/>
  140.  
  141. <h:outputLabel for="movil" value="Móvil:" style="font-weight:bold"/>
  142. <p:inputText id="movil" value="#{registerView.movil}" required="true" onkeypress="if (event.which < 48 || event.which > 57) return false;">
  143. <f:convertNumber integerOnly="true"/>
  144. <f:validateLength minimum="9" maximum="9"/>
  145. </p:inputText>
  146. <p:message for="movil"/>
  147.  
  148.  
  149. <h:outputLabel for="localidad" value="Localidad:" style="font-weight:bold"/>
  150. <p:inputText id="localidad" value="#{registerView.localidad}" required="true">
  151. <f:validateLength maximum="100"/>
  152.  
  153. </p:inputText>
  154. <p:message for="localidad"/>
  155.  
  156.  
  157.  
  158. <h:outputLabel for="password" value="Contraseña:" style="font-weight:bold"/>
  159. <p:password id="password" value="#{registerView.password}" feedback="true"
  160. required="true" requiredMessage="Introduzca su contraseña."
  161. validatorMessage="La contraseña debe contener al menos un número,
  162. así como caracteres tanto en mayúscula como en minúscula, además de
  163. contar con una longitud comprendida entre 6 y 20 caracteres alfanuméricos">
  164. <f:validateRegex pattern="((?=.*d)(?=.*[a-z])(?=.*[A-Z]).{6,20})" />
  165.  
  166. </p:password>
  167. <p:message for="password"/>
  168. <h:outputLabel for="confirmpassword" value="Confirmar contraseña:" style="font-weight:bold"/>
  169. <p:password id="confirmpassword" feedback="true"
  170. value="#{registerView.confirmPassword}" required="true"
  171. requiredMessage="Por favor, confirma tu contraseña."/>
  172. <p:message for="confirmpassword"/>
  173.  
  174.  
  175. <h:outputLabel for="medio" value="Medio:" style="font-weight:bold"/>
  176. <h:selectOneMenu id="medio" value="#{registerView.medio}" required="true" requiredMessage="Introduzca el transporte.">
  177.  
  178. <f:selectItem itemLabel="Coche" itemValue="coche"/>
  179. <f:selectItem itemLabel="Moto" itemValue="moto"/>
  180. **Aquí se invocaría la validación pero me salta nullpointer por lo que he mencionado**
  181.  
  182. </h:selectOneMenu>
  183.  
  184.  
  185.  
  186.  
  187. </h:panelGrid>
  188.  
  189. <p:commandButton value="Registrarse" ajax="false" action="#{registerView.register}"/>
  190.  
  191. <p:growl id="message" showDetail="true" />
  192.  
  193. <p:commandButton value="Ayuda" actionListener="#{dialogView.confirmDel}" update="message">
  194. <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" />
  195. </p:commandButton>
  196.  
  197. <p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
  198.  
  199.  
  200. </p:confirmDialog>
  201. </p:panel>
  202.  
  203. </h:form>
  204.  
  205. </ui:define>
  206.  
  207. </ui:composition>
  208.  
  209. </body>
Add Comment
Please, Sign In to add comment