0

Я пытаюсь отправить ссылку подтверждения по электронной почте в JSF 2.0. Правильная ссылка отправляет на адрес электронной почты пользователя без каких-либо проблем, но я изо всех сил пытаюсь перенаправить ссылку на правильную страницу, когда пользователь нажимает на нее. Я пытаюсь использовать красивые лица для сопоставления URL.Установить параметр ссылки подтверждения в bean-компоненте с использованием PrettyFaces

Ссылка для подтверждения выглядит примерно так:

/confirm?param=1xfib3e

Моего код в красивом лице:

<url-mapping id="confirm"> 
    <pattern value="/confirm?param=#{ iid : emailConfirmation.param}" /> 
    <action>#{emailConfirmation.confirmationLink}</action> 
</url-mapping> 

Я также попытался изменить { iid : emailConfirmation.param} к {emailConfirmation.param} и { param : emailConfirmation.param}

и I 'Пробовал

<url-mapping id="confirm"> 
    <pattern value="/confirm" /> 
    <query-param name="param">#{emailConfirmation.param}</query-param> 
    <action>#{emailConfirmation.confirmationLink}</action> 
</url-mapping> 

У меня также есть фасоль RequestScoped, который выглядит примерно так:

@Named("emailConfirmation") 
    @RequestScoped 
    public class EmailConfirmation implements Serializable{ 

     private String param; 
     .... 
     public String confirmationLink() { 
       log("param value: " + param); 
     } 

     public String getParam() { 
      return param; 
     } 

     public void setParam(String param) { 
      this.param = param; 
     } 

} 

Всякий раз, когда пользователь нажимает на ссылку прямо сейчас, значение парам равно нулю. Как это вызвано и как я могу его решить?

ответ

1

Найден ответ. Если кому-то интересно, это потому, что я импортировал

javax.faces.bean

вместо

javax.enterprise.context.RequestScoped ....

Кроме того, он был второй блок кода отображения URL, который работал, а не первый!

+0

Ах да, это хорошая старая проблема. Это связано с тем, что есть два отдельных контейнера для бобов. Обратите внимание, что javax.faces.bean теперь устарели :) – Lincoln

+0

Такая боль ха-ха. Я буду осторожнее искать это с этого момента. – user1795370

0

Вы не можете использовать параметры запроса в части отображения <pattern>. Если вы хотите настроить параметры запроса для отображения, использовать что-то вроде этого:

<url-mapping id="confirm"> 
    <pattern value="/confirm" /> 
    <query-param name="param">#{emailConfirmation.param}</query-param> 
    <action>#{emailConfirmation.confirmationLink}</action> 
</url-mapping> 

См:

http://www.ocpsoft.org/docs/prettyfaces/3.3.3/en-US/html/Configuration.html#config.queryparams

+0

Верно, я должен добавить, что это был второй блок кода сопоставления URL-адресов, который работал для меня, а не первый – user1795370

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