Перенаправить JSP на другой JSP (Struts1)

1

Это первый раз, когда я работаю со Struts1. Я хочу перенаправить из jsp в другой jsp. Например: если пользователь не в сеансе, перенаправите его на login.jsp; else перейдите в menu.jsp.

Я попытался сделать плитку: isLogged.jsp, которая содержит:

<logic:present name="user">
    <jsp:forward page="menu.do"/>
</logic:present>
<logic:notPresent name="user">
    <jsp:forward page="login.do"/>
</logic:notPresent>

Но он не перенаправляется, и страница пуста (все пустые в коде).

Я вызываю плитку на всех страницах сайта внутри.

Что я делаю не так?

  • 0
    Привет, попробуйте это: stackoverflow.com/questions/4015579/…
  • 0
    Я хотел автоматически перенаправить, когда вы идете на страницу. Но спасибо!
Теги:
jsp
servlets
redirect
struts-1

1 ответ

3
Лучший ответ

Существует несколько решений 1:

  • Использование ActionForwards

    Если у вас в struts-config.xml:

    <action-mappings>
      <action path="/login" forward="/login.jsp"/>
      <action path="/menu" forward="/menu.jsp"/>
    </action-mappings>
    

    Вы можете попробовать (как в своем коде):

    <logic:present name="user">
      <jsp:forward page="menu.do" />
    </logic:present>
    <logic:notPresent name="user">
      <jsp:forward page="login.do" />
    </logic:notPresent>
    
  • Использование путей JSP

    <logic:present name="user">
      <jsp:forward page="/menu.jsp" />
    </logic:present>
    <logic:notPresent name="user">
      <jsp:forward page="/login.jsp" />
    </logic:notPresent>
    
  • Использование logic:redirect

    <logic:present name="user">
      <logic:redirect page="/menu.jsp" />
    </logic:present>
    <logic:notPresent name="user">
      <logic:redirect page="/login.jsp" />
    </logic:notPresent>
    
  • Использование global-forwards

    Если у вас в struts-config.xml:

    <global-forwards>
      <forward name="login" path="/login.jsp"/>
      <forward name="menu" path="/menu.jsp"/>
    </global-forwards>
    

    Можешь попробовать:

    <logic:present name="user">
      <logic:forward name="menu" />
    </logic:present>
    <logic:notPresent name="user">
      <logic:forward name="login" />
    </logic:notPresent>
    

Заметки

  1. В следующих примерах предполагается, что ваши файлы находятся в корневой папке вашего контекста (например, в папке WebContent если вы используете проект standart eclipse). Если у вас есть файлы на другом пути, например, в папке WEB-INF, вы должны просто изменить его на это.
  • 0
    Большой! Спасибо вам большое! Я забыл поставить глобальные форварды. Хотя я не мог работать с плитками, я просто поместил код на страницу, которая перенаправляет, и он работал отлично. Благодарю.
  • 1
    Здесь вы можете найти больше примеров, используя Struts 1.x

Ещё вопросы

Сообщество Overcoder
Наверх
Меню