我目前的设置有问题。我的 JSP 中有这个动作标签
<s:action name="doLogin" executeResult="true"></s:action>
下面是对应的 struts.xml 条目
<action name="doLogin" class="siteLoginAction">
<result name="input">login</result>
<result name="success">home</result>
</action>
jsp 只是一个登录 div(表单、文本字段、标签)。
现在的问题是,当我测试验证功能时
@Override
public void validate() {
String username = siteUser.getSiteUserUsername();
String password = siteUser.getSiteUserPassword();
if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
addFieldError("siteUser.siteUserUsername", "Invalid login");
} else if (!siteUserService.checkLoginExists(username, password, getBlogSiteUrl())) {
addFieldError("siteUser.siteUserPassword", "Invalid login");
}
}
如您所见,它有效,
但它不会消失。每次我访问该页面时,错误消息都会保留在那里。
这是因为 Struts2 动作的单例默认模型吗?我已经尝试过 @Scope("prototype") 但如果我使用它,它根本不会显示错误