我有一个bean类,它包含一个名为errorMessages的ArrayList属性。这是我的二传手和吸气鬼。
public ArrayList<String> getErrorMessages() {
return errorMessages;
}
public void setErrorMessages(ArrayList<String> errorMessages) {
this.errorMessages = errorMessages;
}
我正在使用add()方法添加相关的错误消息,其中我需要验证其他属性。像:
public void setNewPassword(String newPassword) {
if(Validator.isPasswordValid(newPassword)) {
this.newPassword = newPassword;
} else {
errorMessages.add("Password must be between 6-18 characters!");
}
}
我的jsp页面似乎是:
<c:if test="${not empty param.signup}">
//some code...
<c:if test="${not empty signup.errorMessages}">
<div class="alert alert-danger" role="alert">
<c:out value="Something went wrong. Check errors written below."/><br />
<c:forEach items="${signup.errorMessages}" var="errors">
<c:out value="- ${errors}" /><br />
</c:forEach>
</div>
</c:if>
<c:if>
因此,当我尝试注册并在浏览器上出现错误时,即使刷新页面,错误消息也不会消失。我尝试将errorMessages属性设置为null并检查提交的表单。两者都不起作用。问题似乎很基本,但我找不到合适的解决方案。提前谢谢。
编辑:“注册”是指使用页面范围创建的bean对象,我也尝试了请求范围。结果是一样的。这是代码:
<jsp:useBean id="signup" class="myPackage.AccountManagerBeans" scope="page" />