2012-07-01 3 views
0

Когда я отправляю параметры в методе действий на другую страницу, я не могу их прочитать из второго класса.JSF2.0 Передача параметров другому Bean

page1.xhtml:

.... 
<h:commandLink action="#{mbean1.gotoMessageDetail(msg)}" value="#{msg.caption}"/> 
.... 

Управляемый bean1

@ManagedBean(name = "mbean1") 
@RequestScoped 
public class MBean1 { 
.... 
public String gotoMessageDetail(Message msg) { 
    //do some work 
    retrun "page2.xhtml?param1=val1&param2=val2"; 
    } 
} 

На втором классе MBean2 я стараюсь принимать параметры с помощью следующего блока кода, но я не могу получить параметры я послал.

@ManagedBean(name = "mbean2") 
@ViewScoped 
public class MBean2{ 
    ... 
    HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest(); 
    param1=Long.parseLong(request.getParameter("param1")==null ? "0" : request.getParameter("param1")); 
    param2=Long.parseLong(request.getParameter("param2")==null ? "0" : request.getParameter("param2")); 
} 

Параметр param1 и param2 имеют значение null. Как я могу получить param1 и param2 из метода действий mbean1.

ответ

0

Это может быть опечатка retrun? Отредактируйте и повторите попытку.

@ManagedBean(name = "mbean1") 
@RequestScoped 
public class MBean1 { 
.... 
public String gotoMessageDetail(Message msg) { 
    //do some work 
    return "page2.xhtml?param1=val1&param2=val2"; 
    /////retrun to return 
    } 
} 

Для вашей информации, вы можете использовать @ManagedProperty аннотацию, чтобы придать свойства от одного ManagedBean к другому. Наличие свойств на другом ManagedBean означает, что вам не нужно передавать какие-либо параметры.

Посмотрите на Injecting Managed beans in JSF 2.0

+0

Спасибо за ваш комментарий Zany. Но retrun - это просто ошибка типа здесь. Как я знаю, @ManagedProperty работает для сессионных бобов. но мои бобы - это requestcopd и viewcoped. – Mustafa

+0

@Mustafa: аннотация '@ ManagedProperty' вводит любой объект с включенным объектом, если этот управляемый компонент свойств имеет более высокую или равную область действия, чем управляемый компонент. – Ghasfarost

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