Когда я отправляю параметры в методе действий на другую страницу, я не могу их прочитать из второго класса.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¶m2=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.
Спасибо за ваш комментарий Zany. Но retrun - это просто ошибка типа здесь. Как я знаю, @ManagedProperty работает для сессионных бобов. но мои бобы - это requestcopd и viewcoped. – Mustafa
@Mustafa: аннотация '@ ManagedProperty' вводит любой объект с включенным объектом, если этот управляемый компонент свойств имеет более высокую или равную область действия, чем управляемый компонент. – Ghasfarost