Spring MVC 3 перенаправить / переслать с сайтаМеш - PullRequest
1 голос
/ 15 марта 2011

Привет всем,

Я использую Spring MVC 3 + Sitemesh и Spring Security 3. Мне нужно сделать следующий сценарий. Я использую 2 разных макетов для обхода пользователей и обычных пользователей. подход, которым я придерживался, работал нормально, пока я не столкнулся с некоторыми всплывающими окнами JavaScript, потому что я заметил, что страница загружалась дважды и всплывала в одном и том же окне дважды. пожалуйста, подтвердите мой подход.

Класс контроллера -

    @RequestMapping(value = "/mainMenu")
    public class PortalController {

     @RequestMapping(method = RequestMethod.GET)
    public String byPassPortal() {

    if (User.bypassMenu()) {
         //return "redirect:user.html";
         //return "forward:user.html";
         return "/user/user";
    } else {
        // send user to the portal page
        logger.debug("Redirect to the main page");
        return "mainMenu";
    }
    }
}

сайт сетчатого декоратора xml -

<decorators defaultdir="/decorators">
<decorator name="layout" page="layout.jsp">
    <pattern>/user*</pattern>
</decorator>
<decorator name="default" page="default.jsp">
    <pattern>/*</pattern>
</decorator>
</decorators>

вот мои наблюдения - если я использую return "redirect:user.html"; & return "forward:user.html";, он работал нормально с правильным макетом (layout.jsp) для пользователей, так как декоратор будет ловить его по шаблону <pattern>/user*</pattern>. но проблема в том, что форма будет загружаться дважды, и я получаю всплывающее окно дважды.

если я использую return "forward:user.html"; или return "/user/user";, всплывающее окно появится только один раз, но макет неправильный. Причина в том, что он не будет получен от декоратора для шаблона URL <pattern>/user*</pattern> и будет использовать макет по умолчанию неправильно (default.jsp).

Я думаю, что есть что-то, что нужно обрабатывать со стороны пружины, а не с сайта. Можете ли вы дать некоторые рекомендации среди этого? Заранее спасибо.

1 Ответ

0 голосов
/ 22 марта 2011

Я обнаружил проблему. Ничего общего с весной или сайтом нет. все дело во втором макете, который я использовал. он содержал два тега '' и дважды отправлял сайт. Надеюсь, что это поможет всем, у кого возникла такая ошибка. - Сэм 0 секунд назад edit

...