конфигурация struts2 требует ввода? - PullRequest
0 голосов
/ 10 ноября 2011

В моем проекте у меня есть этот конфиг в struts.xml

<action name="searchTracker" class="searchAction" method="searchTracker">
    <result name="success">/jsp/searchTracker.jsp</result>
    <result name="error">/jsp/searchTracker.jsp</result>
</action>

А вот мой метод действия в searchAction Action

public String searchTracker(){

this.clearErrorsAndMessages();

List<File> queryResults = fileManager.retrievequeryResults(patchNumBySearch); // patchNumBySearchis input from the page

if(queryResults == null){
    this.setTrackers(null);
    addActionError("This patch number doesn't exist. Please choose another one !");
    return ERROR;
}
    List<Tracker> trackers = commonUtils.convertToTrackers(queryResults);
    this.setTrackers(trackers);

}
    return SUCCESS;

}

если я введу неправильный параметр и queryResult будет возвращен как NULL, страница searchTracker.jsp может корректно отображать сообщение об ошибке само по себе, как я хочу, но после этого, я ввожу правильный параметр, оно отображает ошибку непосредственно ниже

 "Errors on action com.harris.northstar.dbadesk.action.SearchTrackerAction@9bee3a, returning result name 'input'"

Я только что сравнил журнал отладки в двух разных случаях и обнаружил, что разница только в одной строке

 "converter is null for property patchNumBySearch. Mapping size: 0"

если эта строка существует, она войдет в мои действия, если нет - перейдет к ошибке, запрашивающей входной результат. Что означает линия?

и еще не попал в класс действий. Я знаю, что причина в том, что он нарушает некоторый перехватчик проверки по умолчанию и выдает это исключение, но я не могу найти ничего плохого в этом запросе с правильным параметром. Если я вначале введу правильный параметр, он может получить queryResult и без проблем переходит в результат Success. Единственное отличие - это время.

Нужно ли добавлять входной результат в конфигурацию xml? Я встречал какой-то проект раньше, и он имеет только успех и результат ошибки, никакого результата ввода вообще, почему он не работает? Что-то не так с моим struts.xml?

И я не хочу создавать свой собственный перехватчик, отключив перехватчики проверки по умолчанию для стояков

Я только что нашел способ обойти это. просто удалите результат ошибки в файле конфигурации, только сохраните результат успеха и удалите AccionErrors в методе searchAction, чтобы пользователь не получал никаких предупреждений для своего запроса, просто ничего не показывалось на странице, но этот способ является второстепенным вариантом. Я все еще хочу показать сообщение об ошибке, решив эту проблему.

1 Ответ

0 голосов
/ 10 ноября 2011

Результат input вызывается при возникновении ошибки проверки перед передачей управления в метод действия.В этом случае я предлагаю вам определить тип результата input для исходного jsp и попробовать напечатать fielderrors и actionerros, используя <s:fielderror /> и <s:actionerror /> соответственно.Это улучшит ваши перспективы, и вы узнаете, как с этим справиться на следующем шаге, в зависимости от типа ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...