Прежде всего, я использую простую тему, но даже без нее происходит такое же поведение (кроме форматирования страницы). Когда я отправляю форму, поле имени становится пустым и перенаправляет на register.jsp без отображения ошибки проверки. После проверки журналов или отладчика кажется, что проверка правильной работы и сообщения журнала сервера написаны так, как ожидалось. Я опубликую общий код.Проверка работоспособности Struts2 не работает должным образом, сообщения об ошибках проверки не показаны
struts.properties
struts.ui.theme=simple
MyAction
private User user = new User() // getter and setter
@Inject
transient UserDAO userDAO;
@Override
public User getModel() {
return user;
}
public void validate(){
LOG.debug("NAME VALIDATION " + user.getName());
if("".equals(user.getName())){
addFieldError("user.name", "Name can't be empty");
LOG.debug("Validation Error on name");
}
}
Проверено с отладчиком, проверить метод работает и журналы записываются.
struts.xml
<package name="users" extends="struts-default">
<action name="registerUser" method="prepareRegister" class="com.test.MyAction">
<result name="success">/register.jsp</result>
</action>
<action name="saveOrUpdateUser" method="saveOrUpdate" class="com.test.MyAction">
<result name="input" type="redirect">registerUser</result>
<result name="success" type="redirect">listUser</result>
</action>
</package>
register.jsp
<td>
<s:textfield id = "userName"
label = "User Name"
name = "user.name" />
</td>
<s:fielderror fieldName = "user.name" />
Не стесняйтесь спросить у меня уточнений. Я довольно новичок в struts 2, я попробовал процедуру проверки документации struts 2 и также проверил другие учебники. Я не знаю, не хватает ли чего-то или у меня есть некоторая конфигурация, которую я не замечаю, поскольку логика работает, а часть представления (jsp) - нет. Заранее спасибо.
'getModel()' - используя modeldriven? Прекратите использовать его. –
@Aleksandr M: Если это связано с моей проблемой, я буду :) – manu
'redirect' удалит все ошибки. Не перенаправлять. И вообще, 'redirectAction' должен использоваться для перенаправления на действие. –