2013-04-26 7 views
0

привет я использую prettyfaces jsf2.0 я ве создали фильтр, который проверяет каждый запрос, является ли пользователь регистрируется или неprettyfaces и JSF: получение нулевых значений в классе действий с использованием фильтра

@WebFilter(urlPatterns= {"*.xhtml"} , dispatcherTypes = {DispatcherType.REQUEST}) 
public class Authentication implements Filter { 

@Override 
public void init(FilterConfig config) throws ServletException { 
System.out.println("[Authentication Filter] : init Method"); 
} 
@Override 
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws   IOException, ServletException { 
HttpServletRequest request = (HttpServletRequest) req; 
HttpServletResponse response = (HttpServletResponse) res; 
HttpSession session = request.getSession(false); 
PrettyContext context = PrettyContext.getCurrentInstance(request);  
if (!(context.getCurrentMapping().getId().equals("login")) && (session == null ||  session.getAttribute("username") == null)) { 
{ 
response.sendRedirect(request.getContextPath()+"/login"); 
} 
else { 
chain.doFilter(req, res); // Logged-in user found, so just continue request. 
} 
@Override 
public void destroy() {} 
} 

, когда я начал TOMCAT сервер он загрузит login.xhtml страницы URL показывается в адресной строке // локальный: 8080/MyApp/Войти в login.xhtml я в форму с именем пользователя и паролем полого

, когда я отправить форму с помощью

<p:commandButton ajax="false" value="Login" action="pretty:loggedin" /> 

и когда я получаю значение в классе действия, значения равны нуль там и когда я печатать System.out.println Логгиной фильтр выглядит как два URL запрашивают 1./вход 2./LoggedIn thats y значения получают там null. любое решение пожалуйста спасибо заранее.

ответ

1

Это не выглядит правильным, что вы делаете. Вы используете pretty:loggedin в качестве атрибута действия в вашей команде входа в систему. Это не будет выполнять какой-либо метод действий, а вместо этого перенаправляется на другое сопоставление, без каких-либо шансов обработать введенные пользователем значения.

Вы должны вместо этого ссылаться на метод в своем действии, который вы используете при попытке входа в систему. Если он был успешным, этот метод должен вернуть pretty:loggedin, который перенаправляет пользователя на новую страницу.

Надеюсь, это немного поможет. Если у вас больше проблем, вы должны публиковать сообщения на форумах PrettyFaces. Это лучшее место, чтобы помочь вам, если решение проблемы занимает несколько циклов вопросов/ответов. :)

http://ocpsoft.org/support/

+0

когда нагрузка на сервер загружает login.xhtml страницу –

+0

когда сервер загружает login.xhtml успешно URL-адрес этой странице // локальный: 8080/MyApp/Логин но когда я отправить форму @URLAction (mappingId = "LoggedIn") loggedInAction() {} с помощью <р: CommandButton АЯКС = "ложное" значение = "Войти" действие = "довольно: LoggedIn" /> значения равны нулю в методе действия –

+0

вас говорят, что предположим, что у меня есть класс имя MyClass, имеющий метод myAction() поэтому я использую вместо это ?? –

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

  • Нет связанных вопросов^_^