2012-06-06 5 views
0

У меня есть страница входа в систему и панель инструментов.Проблема с переадресацией JSF2

После того, как будет выведена страница входа в систему на панели управления (с использованием правила навигации).

<navigation-rule> 
     <from-view-id>/login.xhtml</from-view-id> 
     <navigation-case> 
      <from-outcome>dashboard</from-outcome> 
      <to-view-id>/viewp/dashboard.xhtml</to-view-id> 
     </navigation-case> 
    </navigation-rule> 

У меня есть фильтрация карт для всех запросов.

Вот мой сценарий. На моей странице панели мониторинга есть клиентский опросчик. Когда сервер перезагружается, poller отправляет запрос, который будет интерпретироваться фильтром.

Внутри фильтра у меня есть логика, как

If(url.contains("login.xhtml)) 
{ 
//dofilter 
}else 
{ 
// redirect to login. 
} 

но почему-то это не перенаправляет.

Одно наблюдение у меня есть, после входа в систему, хотя я на странице панели инструментов, мой URL-адрес по-прежнему похож на mydomain/login.xhtml. Я думаю, потому что URL-адрес в браузере mydomain/login.xhtml, response.redirect("mydomain/login.xhtml") не работает. Какие-либо предложения?

Спасибо,

ответ

1

голосующий выполняется JavaScript/Ajax, не так ли? Ну, вы должны проверить JavaScript/Ajax, если сервер вернул 302 вместо 200 и обработал соответственно. Сам браузер не делает этого автоматически для возвращаемых ответов JavaScript/Ajax, но только для ответов на синхронные запросы.

Вы можете использовать window.location в JavaScript, чтобы выполнить "перенаправление". Например.

if (ajaxResponseStatus == 302) { 
    window.location = newURL; 
} 
+0

Вместо ответа сервера, что я пытаюсь сделать это, когда сервер и голосующий отправляет запрос, он будет проходить через фильтр, внутри фильтра я могу Findout, что это первый запрос, таким образом отправить .redirect(). Но проблема в том, что URL, который я передаю здесь, точно такой же, как и у меня в браузере, я думаю, именно поэтому браузер ничего не делает. – kosa

+0

Вы сейчас говорите, что вы синхронно опросили? Ваш вопрос/проблема имеет смысл, если вы делаете это асинхронно (т. Е. JavaScript/Ajax). – BalusC

+0

Есть ли в любом случае, когда мы переходим из login.xhtml в dashboard.xhtml, мы можем изменить URL-адрес браузера на основе правила навигации, как в моем вопросе? Я также попробовал /viewp/dashboard.xhtml?faces-redirect=true. – kosa

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