2012-02-02 20 views
0

У меня возникла проблема с моим приложением расположений, где пользователя просят обновить его данные с помощью действия формы, поскольку userUpdateAction и bean-компонента - это UserUpdateForm.I есть сервлет-фильтр, чтобы проверить, является ли пользователь уже вошли в систему или нет. Если он не войдет в систему, я перейду на вход в действие action.if, и он зарегистрировался, я покажу ему форму для обновления, после которой после успешной проверки она будет отправлена ​​на пустую страницу.Struts после отправки формы на пустую страницу

распорка-config.xml

action path="/userUpdateAction" type="com.vaannila.action.userUpdateAction" name="UserUpdateForm" input="/update.jsp" validate="true" scope="request"> 
      <forward name="success" path="/updateSuccess.jsp" /> 
      <forward name="error" path="/update.jsp" /> 

действие класс

public class userUpdateAction extends Action{ 

@Override 
    public ActionForward execute(ActionMapping mapping, ActionForm form, 

      ServletRequest req, ServletResponse res) throws Exception { 

     UserUpdateForm userform = (UserUpdateForm)form; 

     System.out.println("form values :"+userform.getEmail()); 

     return mapping.findForward("success"); 

    } 
} 

имена Экспедиторского является правильной (успех правильно и в классе и распорки-config.xml). метод execute также правильно переопределяет метод выполнения действия.

В TOMCAT консоли я могу видеть, как

user already logged in start chain execution 
2 Feb, 2012 9:12:10 AM org.apache.struts.chain.commands.servlet.CreateAction createAction 
INFO: Initialize action of type: com.vaannila.action.userUpdateAction 
errors : {} 

userUpdateAction происходит инициализация, но он не выполняет execute метод и собирается на пустую страницу.

+0

Усильте входа в 'DEBUG', перезагрузка, и повторите попытку. –

+0

проблема решена, проблема в объявлении метода должна быть HttpServletRequest, HttpServletResponse не ServletRequest и ServletResponse. – user1184225

ответ

1

Я вижу в разделе комментариев вопрос, как опубликовал, был разрешен для конкретного пользователя. У меня было такое же поведение, как описано (отправить запрос http, но возвращалась только пустая страница). Хотел поделиться своей резолюцией для других, тем более, что первоначальный ответ помог мне привести мое решение.

Моя команда и я модернизированы от Struts 1.1 до 1.3 (большой прыжок). Большинство наших классов действий использовали метод perform(). Оказывается, что для v1.1 выполнение() было устаревшим, а execute() было добавлено. В v1.2 функция perform() была удалена. Эта информация никогда не попадала в наши первоначальные исследования, прежде чем мы начали обновление. Я не знаю, почему наши оригинальные авторы приложений не использовали execute() все эти годы назад.

Мы изменили классы действий, чтобы использовать метод execute(), и все снова заработало.

Надеюсь, это сэкономит время и силы в будущем.

Reference to Struts v1.1 API

Reference to Struts v1.2 API

+0

Еще одна ссылка ссылки ... Относительно Struts v1.0 to v1.1 upgrade и устаревшего метода perform(). http://www.safaribooksonline.com/library/view/jakarta-struts-cookbook/059600771X/ch01s04.html –

Смежные вопросы