Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неправильное перенаправление в struts 2 
V
    Опции темы
Ares4322
Дата 22.3.2010, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 25.9.2007
Где: Россия, Москва

Репутация: 2
Всего: 3



Доброго времени суток!
Использую Struts2. Есть файл struts2.xml. Делаю валидацию через xml файлы. Почему то неправильно работает перенаправление в action'е deviceControl. При submit'е перенаправляется не на себя, а на registration. 
Вот struts.xml. В чем может быть проблема?
Код

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.action.excludePattern" value="/appDataLoader"/>
    <package name="XXX" extends="struts-default">
        
        <!-- Добавляем тип Tiles-->
        <result-types>
            <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
        </result-types>
        
        <!-- при активации Action с именем *Link формируется шаблон на основе Tiles-->
        <action name="*Link" method="{1}" class="XXX.web.LinkAction">
            <result name="main" type="tiles">main</result>
            <result name="buy" type="tiles">buy</result>
            <result name="faq" type="tiles">faq</result>
            <result name="news" type="tiles">news</result>
            <result name="cabinet" type="tiles">cabinet</result>
            <result name="partners" type="tiles">partners</result>
            <result name="contacts" type="tiles">contacts</result>
            <result name="registration" type="tiles">registration</result>
            <result name="deviceControl" type="tiles">deviceControl</result>
            <result name="input" type="tiles">registration</result>
        </action>
        
        <!--Action для регистрации -->
        <action name="registration" class="XXX.logic.Registration" >
            <result name="success" type="chain">
                <param name="actionName">cabinetLink</param>
            </result>
            <result  name="input" type="chain">
                <param name="actionName">registrationLink</param>
            </result>
        </action>
 
        <action name="deviceControl" class="XXX.logic.DeviceControl" >
            <result name="success" type="chain">
                <param name="actionName">deviceControlLink</param>
            </result>
            <result  name="input" type="chain">
                <param name="actionName">deviceControlLink</param>
            </result>
        </action>

        <action name="cabinet" class="XXX.logic.Cabinet" >
            <result name="success" type="chain">
                <param name="actionName">cabinetLink</param>
            </result>
            <result  name="input" type="chain">
                <param name="actionName">registrationLink</param>
            </result>
        </action>

        <action name="login" class="ru.cybermonitor.logic.Login">
            <result name="success" type="chain">
                <param name="actionName">cabinetLink</param>
            </result>
            <result name="error">registrationError.jsp</result>
            <result  name="input" type="chain">
                <param name="actionName">registrationLink</param>
            </result>
            <result  name="login" type="chain">
                <param name="actionName">mainLink</param>
            </result>
        </action>

    </package>
</struts>



Это сообщение отредактировал(а) Ares4322 - 20.4.2010, 11:27
PM MAIL   Вверх
MisterCleric
Дата 22.3.2010, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



При обвале валидации происходит возврат INPUT.
У тебя action deviceControl при input чейнит на deviceControlLink.
А этот попадает на твой action *Link. Какой при этой метод LinkAction вызывается, что бы понимать какой же result у тебя возвращается? А то видно, что на registration попадает при input ?


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Ares4322
Дата 22.3.2010, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 25.9.2007
Где: Россия, Москва

Репутация: 2
Всего: 3



На registrationLink LinkAction возвращает registration и , соответственно, на deviceControLink - deviceControl. 
Проблема в том, используется Tiles. А для него нельзя перенаправлять на страничку, надо перенаправлять именно на *Link. Это специальный action, который собирает страничку из шаблона.
PM MAIL   Вверх
MisterCleric
Дата 22.3.2010, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



дык, класс-то ru.cybermonitor.web.LinkAction ты писал сам, что в нем происходит?

Это сообщение отредактировал(а) MisterCleric - 22.3.2010, 12:32


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Ares4322
Дата 22.3.2010, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 25.9.2007
Где: Россия, Москва

Репутация: 2
Всего: 3



import com.opensymphony.xwork2.ActionSupport;

public class LinkAction extends ActionSupport {

    public String main() {
        return "main";
    }

    public String news() {
        return "news";
    }

        public String buy() {
        return "buy";
    }
        public String faq() {
        return "faq";
    }

    public String cabinet() {
        return "cabinet";
    }

    public String contacts() {
        return "contacts";
    }

    public String partners() {
        return "partners";
    }

    public String registration() {
        System.out.println("registration");
        return "registration";
    }
    public String deviceControl() {
        System.out.println("deviceControl");
        return "deviceControl";
    }
}



Это сообщение отредактировал(а) Ares4322 - 22.3.2010, 13:03
PM MAIL   Вверх
MisterCleric
Дата 22.3.2010, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



И что пишет в логи это?
Цитата

System.out.println("deviceControl");



--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Ares4322
Дата 22.3.2010, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 25.9.2007
Где: Россия, Москва

Репутация: 2
Всего: 3



да я для себя это пишу. не в этом то проблема!
PM MAIL   Вверх
Ares4322
Дата 22.3.2010, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 25.9.2007
Где: Россия, Москва

Репутация: 2
Всего: 3



Уже разобрался. Спасибо! В который раз сам разбираюсь, быстрее, чем получаю тут ответ)
PM MAIL   Вверх
MisterCleric
Дата 22.3.2010, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



А в чем, собственно, проблема-то была?


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Ares4322
Дата 22.3.2010, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 25.9.2007
Где: Россия, Москва

Репутация: 2
Всего: 3



проблема была в том, как написать код, чтоб при использовании со struts2 tiles работала валидация. попробуйте сами и поймете)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.