。
>当我将操作方法中的参数发送到另一个页面时,我无法从第二个类读取它们。
页1.xhtml:
....
<h:commandLink action="#{mbean1.gotoMessageDetail(msg)}" value="#{msg.caption}"/>
....
托管豆1
@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"));
}
参数 1 和参数 2 为空。 如何从 mbean1 的操作方法中获取参数 1 和参数 2。
会不会是这个错别字retrun
?编辑并重试。
@ManagedBean(name = "mbean1")
@RequestScoped
public class MBean1 {
....
public String gotoMessageDetail(Message msg) {
//do some work
return "page2.xhtml?param1=val1¶m2=val2";
/////retrun to return
}
}
供您参考,您可以使用@ManagedProperty
注释将属性从一个托管 Bean 注入到另一个托管 Bean。将属性放在另一个 ManagedBean 上意味着您无需传递任何参数。
看看在 JSF 2.0 中注入受管 Bean