У меня возникла проблема с моей настройкой. у меня есть это действие тега в моем JSPStruts2 - Проверить ошибку, не обновляющуюся при вызове тега вызова
<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>
СПЯ просто Войти ДИВ (форма, текстовое поле, метка).
Теперь проблема заключается в том, что, когда я тестирую функция Validate
@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 («прототип»), но, если я использую его не отображает сообщение об ошибке на всех
Я посмотрю, что я могу сделать с тегом действий. Проблема в том, что JSP, вызывающий действие, неизвестен (может быть любым именем файла), поэтому у меня не было выбора, кроме как вернуть результат через тег действия. –
Неправильно: почему * любой неизвестный * JSP должен иметь возможность встроить в него окно входа? Если требуется логин, просто переадресовывайте всю страницу на страницу входа (в конечном итоге сохраняя URL-адрес страницы, с которой вы пришли), а затем после успешного входа в систему. В противном случае, imho –
используйте iframe –