powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / struts
25 сообщений из 27, страница 1 из 2
struts
    #34892687
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос к господам знактокам
как передать данные допустим HttpServletRequest request
из одного Action в другое минуя View

причем эти Action в разных классах
...
Рейтинг: 0 / 0
struts
    #34892693
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
 public  ActionForward myCoolActionMethod(...)  throws  Exception {
  ...
   return   new  MyFuckingCoolAction().mySupaKoolActionMethod(request, response, ...);
}
...
Рейтинг: 0 / 0
struts
    #34893517
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог
Код: plaintext
1.
2.
3.
4.
 public  ActionForward myCoolActionMethod(...)  throws  Exception {
  ...
   return   new  MyFuckingCoolAction().mySupaKoolActionMethod(request, response, ...);
}


да ну при этом если второй Action заканчивается
return mapping.findForward("MyFuckingCoolAction"); для отображения View
он повторно лезит в MyFuckingCoolAction и опять с пустыми параметрами
...
Рейтинг: 0 / 0
struts
    #34893576
denka Софтверный проктолог
Код: plaintext
1.
2.
3.
4.
 public  ActionForward myCoolActionMethod(...)  throws  Exception {
  ...
   return   new  MyFuckingCoolAction().mySupaKoolActionMethod(request, response, ...);
}


да ну при этом если второй Action заканчивается
return mapping.findForward("MyFuckingCoolAction"); для отображения View
он повторно лезит в MyFuckingCoolAction и опять с пустыми параметрами
Что он делает? Ты не можешь сделать и посмотреть, что будет на самом деле?
...
Рейтинг: 0 / 0
struts
    #34893616
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проктолог из дома denka Софтверный проктолог
Код: plaintext
1.
2.
3.
4.
 public  ActionForward myCoolActionMethod(...)  throws  Exception {
  ...
   return   new  MyFuckingCoolAction().mySupaKoolActionMethod(request, response, ...);
}


да ну при этом если второй Action заканчивается
return mapping.findForward("MyFuckingCoolAction"); для отображения View
он повторно лезит в MyFuckingCoolAction и опять с пустыми параметрами
Что он делает? Ты не можешь сделать и посмотреть, что будет на самом деле?

Я проверил
Что написал то и делает
То есть MyFuckingCoolAction() это Action которое вызывает View некий jsp файл
соответственно он заканчивается
return mapping.findForward("showMyFuckingCoolAction");

В вашем варианте из одного Action вызывается
new MyFuckingCoolAction().mySupaKoolActionMethod(request, response, ...);
и соответственно натыкаясь на return mapping.findForward("showMyFuckingCoolAction");
он опять вызывает MyFuckingCoolAction().mySupaKoolActionMethod()
но уже с пустыми параметрами
...
Рейтинг: 0 / 0
struts
    #34893856
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что никто не делал цепочку

Action->Action->View?
...
Рейтинг: 0 / 0
struts
    #34893896
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх давно это было сейчас уже и не вспомню, но что то типа ForwardingActionForward надо использовать. Короче форвардить надо.
...
Рейтинг: 0 / 0
struts
    #34893915
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denka
В вашем варианте из одного Action вызывается
new MyFuckingCoolAction().mySupaKoolActionMethod(request, response, ...);
и соответственно натыкаясь на return mapping.findForward("showMyFuckingCoolAction");
он опять вызывает MyFuckingCoolAction().mySupaKoolActionMethod()
но уже с пустыми параметрами
Лично у меня в forward'е прописывается именно переход на тайл (или jsp), но не action.
Поэтому когда я делаю mapping.findForward() — я получаю переход без вызова какого-либо Action'а.
...
Рейтинг: 0 / 0
struts
    #34894012
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог denka
В вашем варианте из одного Action вызывается
new MyFuckingCoolAction().mySupaKoolActionMethod(request, response, ...);
и соответственно натыкаясь на return mapping.findForward("showMyFuckingCoolAction");
он опять вызывает MyFuckingCoolAction().mySupaKoolActionMethod()
но уже с пустыми параметрами
Лично у меня в forward'е прописывается именно переход на тайл (или jsp), но не action.
Поэтому когда я делаю mapping.findForward() — я получаю переход без вызова какого-либо Action'а.

Это я для наглядности
вызов происходит так
mapping.findForward("MyFuckingForm")

соответственно
<action attribute="MyFuckingForm" input="/jsp/fucking.jsp"
name="MyFuckingForm" path="/showMyFucking" scope="request"
type="com.struts.action.MyFuckingCoolAction">
<forward name="showMyFucking" path="page.FuckingList" redirect="true"/>
</action>
...
Рейтинг: 0 / 0
struts
    #34894021
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denka Софтверный проктолог denka
В вашем варианте из одного Action вызывается
new MyFuckingCoolAction().mySupaKoolActionMethod(request, response, ...);
и соответственно натыкаясь на return mapping.findForward("showMyFuckingCoolAction");
он опять вызывает MyFuckingCoolAction().mySupaKoolActionMethod()
но уже с пустыми параметрами
Лично у меня в forward'е прописывается именно переход на тайл (или jsp), но не action.
Поэтому когда я делаю mapping.findForward() — я получаю переход без вызова какого-либо Action'а.

Это я для наглядности
вызов происходит так
mapping.findForward("MyFuckingForm")

соответственно
<action attribute="MyFuckingForm" input="/jsp/fucking.jsp"
name="MyFuckingForm" path="/showMyFucking" scope="request"
type="com.struts.action.MyFuckingCoolAction">
<forward name="showMyFucking" path="page.FuckingList" redirect="true"/>
</action>

ой немного ошибся
mapping.findForward("showMyFucking")
...
Рейтинг: 0 / 0
struts
    #34894082
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подход номер 1.

В общем, так.
struts-config.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<action path="/test-action1" type="test.Action1">
  <forward name="forward" path="/WEB-INF/jsp/test1.jsp"/>
</action>

<action path="/test-action2" parameter="action" type="test.Action2">
  <forward name="forward" path="/WEB-INF/jsp/test2.jsp"/>
</action>

/WEB-INF/jsp/test1.jsp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<%@page contentType="text/html; charset=windows-1251"%>
<html>
<head>
<title>test1</title>
</head>
<body bgcolor="#ffffff">
<h1>Это TEST1
</body>
</html>

/WEB-INF/jsp/test2.jsp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<%@page contentType="text/html; charset=windows-1251"%>
<html>
<head>
<title>test1</title>
</head>
<body bgcolor="#ffffff">
<h1>Это TEST2
</body>
</html>

test.Action1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 package  test;

 import  javax.servlet.http.*;

 import  org.apache.struts.action.*;


 public   class  Action1  extends  Action {
     public  ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                 HttpServletResponse response)  throws  Exception {
        System.out.println("They called me 'Action1'");
         return   new  Action2().execute(mapping, form, request, response);
    }

}

test.Action2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 package  test;

 import  javax.servlet.http.*;

 import  org.apache.struts.action.*;

 public   class  Action2  extends  Action {
     public  ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                 HttpServletResponse response)  throws  Exception {
        System.out.println("They called me 'Action2'");
         return  mapping.findForward("forward");

    }
}

Выполняем test-action1.do .

Смотрим в логе:
Код: plaintext
1.
2.
They called me 'Action1'
They called me 'Action2'


Что выдим на экране:
Код: plaintext
1.
Это TEST1 





Подход номер 2.
Меняем.
struts-config.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<action path="/test-action1" type="test.Action1">
  <forward name="forward" path="/test-action2.do"/>
</action>

<action path="/test-action2" parameter="action" type="test.Action2">
  <forward name="forward" path="/WEB-INF/jsp/test2.jsp"/>
</action>


test.Action1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 package  test;

 import  javax.servlet.http.*;

 import  org.apache.struts.action.*;


 public   class  Action1  extends  Action {
     public  ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                 HttpServletResponse response)  throws  Exception {
        System.out.println("They called me 'Action1'");
         return  mapping.findForward("forward");
    }

}

Выполняем test-action1.do .

Смотрим в логе:
Код: plaintext
1.
2.
They called me 'Action1'
They called me 'Action2'


Что выдим на экране:
Код: plaintext
1.
Это TEST2


Все разжевано. Любые дальнейшие споры считаю бессмысленными.
...
Рейтинг: 0 / 0
struts
    #34894573
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас получается что конфиг выполняется в первом случае от Action
А если у мнея на оба Action на входе разные бины
...
Рейтинг: 0 / 0
struts
    #34894588
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denkaУ вас получается что конфиг выполняется в первом случае от Action
А если у мнея на оба Action на входе разные бины
Это уже ваша забота — передавать правильные бины на вход каждому экшену. Struts это делать не будет, раз уж захотели поизвращаться.
...
Рейтинг: 0 / 0
struts
    #34894607
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог denkaУ вас получается что конфиг выполняется в первом случае от Action
А если у мнея на оба Action на входе разные бины
Это уже ваша забота — передавать правильные бины на вход каждому экшену. Struts это делать не будет, раз уж захотели поизвращаться.

А как например подпихнуть бин Action2
...
Рейтинг: 0 / 0
struts
    #34894629
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denka
А как например подпихнуть бин Action2
Давайте сначала разберемся с терминологией.
Action2 в моем примере — это не бин. Это экшн.
Бинов я не определял.

Что делать, если хочется засунуть другой бин:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<action path="/test-action1" name="formForAction1" type="test.Action1">
  <forward name="forward" path="/WEB-INF/jsp/test2.jsp"/>
</action>

<action path="/test-action2" name="formForAction2" type="test.Action2">
  <forward name="forward" path="/WEB-INF/jsp/test2.jsp"/>
</action>


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
 package  test;

 import  javax.servlet.http.*;

 import  org.apache.struts.action.*;


 public   class  Action1  extends  Action {
     public  ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                 HttpServletResponse response)  throws  Exception {
        MyFormForAction1 frm = (MyFormForAction1) form;
        System.out.println("They called me 'Action1' and my form 1 = " + frm );
         return   new  Action2().execute(mapping,  new  MyFormForAction2(), request, response);
    }

}


 package  test;

 import  javax.servlet.http.*;

 import  org.apache.struts.action.*;

 public   class  Action2  extends  Action {
     public  ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                 HttpServletResponse response)  throws  Exception {
        MyFormForAction2 frm = (MyFormForAction2) form;
        System.out.println("They called me 'Action2' and my form 2 = " + frm );
         return  mapping.findForward("forward");

    }
}

Что такое MyFormForAction1 и MyFormForAction1 — разберетесь.
...
Рейтинг: 0 / 0
struts
    #34894632
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если используется второй подход, то следует самостоятельно в request (или session, в зависимости от настройки второго экшна) подложить экземпляр этого класса под ожидаемым именем.
...
Рейтинг: 0 / 0
struts
    #34894676
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог denka
А как например подпихнуть бин Action2
Давайте сначала разберемся с терминологией.
Action2 в моем примере — это не бин. Это экшн.
Бинов я не определял.

Что делать, если хочется засунуть другой бин:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<action path="/test-action1" name="formForAction1" type="test.Action1">
  <forward name="forward" path="/WEB-INF/jsp/test2.jsp"/>
</action>

<action path="/test-action2" name="formForAction2" type="test.Action2">
  <forward name="forward" path="/WEB-INF/jsp/test2.jsp"/>
</action>


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
 package  test;

 import  javax.servlet.http.*;

 import  org.apache.struts.action.*;


 public   class  Action1  extends  Action {
     public  ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                 HttpServletResponse response)  throws  Exception {
        MyFormForAction1 frm = (MyFormForAction1) form;
        System.out.println("They called me 'Action1' and my form 1 = " + frm );
         return   new  Action2().execute(mapping,  new  MyFormForAction2(), request, response);
    }

}


 package  test;

 import  javax.servlet.http.*;

 import  org.apache.struts.action.*;

 public   class  Action2  extends  Action {
     public  ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                 HttpServletResponse response)  throws  Exception {
        MyFormForAction2 frm = (MyFormForAction2) form;
        System.out.println("They called me 'Action2' and my form 2 = " + frm );
         return  mapping.findForward("forward");

    }
}

Что такое MyFormForAction1 и MyFormForAction1 — разберетесь.


Этот пример не рабочий у него в ActionMapping mapping остается название старой формы
Мапинг менять он не дает
...
Рейтинг: 0 / 0
struts
    #34894801
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denka
Этот пример не рабочий у него в ActionMapping mapping остается название старой формы
Мапинг менять он не дает
Это не название формы. Это путь перехода. Да, путь берется тот, который прописан в первом экшене, как и было ясно видно в моем первом примере. И понятно, почему остается. Если это не нравится — см. подход 2. Если не нравится подход номер два — используйте подход номер 1, вызывая второй экшн, и в первом экшене самостоятельно переходя куда нужно.

P.S. Всё, я утомился.
...
Рейтинг: 0 / 0
struts
    #34894840
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог denka
Этот пример не рабочий у него в ActionMapping mapping остается название старой формы
Мапинг менять он не дает
Это не название формы. Это путь перехода. Да, путь берется тот, который прописан в первом экшене, как и было ясно видно в моем первом примере. И понятно, почему остается. Если это не нравится — см. подход 2. Если не нравится подход номер два — используйте подход номер 1, вызывая второй экшн, и в первом экшене самостоятельно переходя куда нужно.

P.S. Всё, я утомился.

второй подход он не предает параметров из action1 в action2
...
Рейтинг: 0 / 0
struts
    #34894879
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог denka
Этот пример не рабочий у него в ActionMapping mapping остается название старой формы
Мапинг менять он не дает
Это не название формы. Это путь перехода. Да, путь берется тот, который прописан в первом экшене, как и было ясно видно в моем первом примере. И понятно, почему остается. Если это не нравится — см. подход 2. Если не нравится подход номер два — используйте подход номер 1, вызывая второй экшн, и в первом экшене самостоятельно переходя куда нужно.

P.S. Всё, я утомился.

как не название формы параметр name вроде название form-bean
...
Рейтинг: 0 / 0
struts
    #34894882
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denka
второй подход он не предает параметров из action1 в action2
Передает. Но писать больше ничего не буду. Просто надоело.
...
Рейтинг: 0 / 0
struts
    #34894922
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог denka
второй подход он не предает параметров из action1 в action2
Передает. Но писать больше ничего не буду. Просто надоело.
нет не передает если вставить

request.setAttribute("String", new String("test")); в Action1
String str = (String)request.getAttribute("String"); в Action2
то вернется null
...
Рейтинг: 0 / 0
struts
    #34894932
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denka Софтверный проктолог denka
второй подход он не предает параметров из action1 в action2
Передает. Но писать больше ничего не буду. Просто надоело.
нет не передает если вставить

request.setAttribute("String", new String("test")); в Action1
String str = (String)request.getAttribute("String"); в Action2
то вернется null


ну в смысле
String str = (String)request.getAttribute("test"); в Action2
...
Рейтинг: 0 / 0
struts
    #34894941
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и думал, что это бесполезно...

denka
Четайте мануалы.
Сначала про сервлеты, потом про JSP, потом про стратс.
...
Рейтинг: 0 / 0
struts
    #34894949
denka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктологЯ так и думал, что это бесполезно...

denka
Четайте мануалы.
Сначала про сервлеты, потом про JSP, потом про стратс.

ну понятно
хихи
стандартный ответ
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / struts
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]