我在每次输入错误的电子邮件地址时向用户显示register
bean的错误消息时遇到问题。
每当用户键入错误的电子邮件地址时,屏幕上都不会显示任何消息。我已经读过关于stackoverflow的几篇文章,包括错误的web.xml
配置等,但是我的问题没有解决。我正在使用带有netbeans 8.2的glassfish服务器。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
>
<h:head>
<title>Registration form</title>
<!--<link rel="stylesheet" type="text/css" href="../styles/registrationFlow.css"/>-->
</h:head>
<h:body>
<div class="registerContainer">
<div class="formContainer">
<h:form class="registerForm">
<h:message for="register" id="errormessage"/>
<h:outputText value="Username "/>
<h:inputText id="username" value="#{registration.username}"></h:inputText>
<h:outputText value="Password "/>
<h:inputSecret id="password" value="#{registration.password}"></h:inputSecret>
<h:outputText value="Firstname "/>
<h:inputText id="first" value="#{registration.first}"></h:inputText>
<h:outputText value="Lastname "/>
<h:inputText id="last" value="#{registration.last}"></h:inputText>
<h:outputText value="Email "/>
<h:inputText id="email" value="#{registration.email}"></h:inputText>
<h:commandButton id="register" action="#{registration.register}" value="Zarejestruj" style="margin: 15px auto; width: 35%; "></h:commandButton>
<h:messages for="register"/>
</h:form>
</div>
</div>
</h:body>
</html>
我的registration
豆
package com.pa.controllers;
import com.pa.entities.User;
import com.pa.serviceDAO.UserFacade;
import com.pa.utils.SessionUtil;
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.http.HttpSession;
@Named
@SessionScoped
public class Registration implements Serializable {
private static final long serialVersionUID = 1L;
@Inject
private UserFacade userDAO;
private String username;
private String password;
private String first;
private String last;
private String email;
private User user;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getFirst() {
return first;
}
public void setFirst(String first) {
this.first = first;
}
public String getLast() {
return last;
}
public void setLast(String last) {
this.last = last;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Boolean validateEmail(String email) {
String regex = "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$";
return email.matches(regex);
}
public String register() {
boolean validateEmail = validateEmail(email);
User existingUser = userDAO.checkIfExists(username, email);
if (existingUser == null && validateEmail) {
User newUser = new User();
newUser.setUsername(username);
newUser.setPassword(password);
newUser.setFirstName(first);
newUser.setLastName(last);
newUser.setUserMail(email);
newUser.setUserRole("user");
try {
userDAO.add(newUser);
HttpSession session = SessionUtil.getSession();
session.setAttribute("username", username);
session.setAttribute("userId", newUser.getIdUser());
session.setAttribute("firstname", first);
setUser(newUser);
} catch (Exception e) {
return null;
}
return "addClients?faces-redirect=true";
} else if (validateEmail == false) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Provided email is invalid", null);
FacesContext ctx = FacesContext.getCurrentInstance();
ctx.addMessage(null, message);
System.out.println("wrong email");
} else {
return null;
}
return null;
}
}
和我的web.xml
文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
</web-app>