Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2014, 01:01   #1
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию Java EE + JSF. Как передать значение из одного класса в другой?

Для создания шаблона, в хедере которого происходит авторизация, требуется передать из класса, который используется в части контента, переменную вроде "needRole".
Далее идет псевдокод с упущенными сеттерами/геттерами и прочей технической частью.

Код класса авторизации:
Код:
class Auth
{
 String needRole; // требуемая роль
 User u; // получаем юзера из сессии
 
 public void Auth()
 {
  u = session.getUser(); // функция получения пользователя
  if (u.getRole() != needRole) // если роль не соответствует - перенаправляем
   redirectTo("http://site/login.jsp");
 }
}
Код внутреннего (контентного) класса:
Код:
class Entered
{
 String needRole = "User";
}
Код шаблона:
Код:
<!-- Страница-шаблон -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">
 
    <h:head>
    </h:head>
 
    <h:body onload="auth.Auth()">
	<div id="page">
	    <div id="content">
	  	<ui:insert name="content" >
	 	  <ui:include src="/mainContent.xhtml" />
	   	</ui:insert>
	    </div>
        </div>
    </h:body>
</html>
Код страницы контента:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">

<h:head>
</h:head>

<h:body>
	<ui:composition template="http://site/templates/main.xhtml">
	<ui:define name="content">
//-------------------------------------------------
// Сюда требуется вставить код, который будет передавать значение 
// из Entered.needRole в Auth.needRole
// вроде <f:foo action="#{Auth.needRole} = #{Entered.needRole}"/>
// может какой-то код должен быть в какой-то функции в <h:body onload="">
//-------------------------------------------------
	</ui:define>
	</ui:composition>
</h:body>
</html>
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 16.12.2014 в 01:05.
alextrof94 вне форума Ответить с цитированием
Старый 16.12.2014, 02:13   #2
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Правильным ли решением будет следующий код?
Код:
<h:body onload="#{Auth.setNeedRole(Entered.needRole)}">
В данный момент не получается проверить из-за ошибки в инклюдах. Инклюженные элементы вообще не работают (в header.xhtml -> body onload стоит "auth.Auth()", но функция не отрабатывает).
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 16.12.2014 в 02:17.
alextrof94 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача DataTable из одного класса в другой. lex0rg C# (си шарп) 8 08.08.2013 15:16
Передать строку из одного ListBox в другой 803 Помощь студентам 0 09.06.2013 12:04
jsr-184, как передать обьекты с одного мира в другой? Димон0 Java Мобильная разработка (Android) 0 31.08.2011 18:00
Как передать управление из одного объекта в другой? wolf05632 Microsoft Office Word 16 10.04.2011 08:21
Необходимо передать переменную из одного класса в другой. scray PHP 4 27.12.2009 13:01