日期:2014-05-18  浏览次数:20698 次

如何获取一个JSF页面中的bean的实例?
例如,我有一个JSF页面:

<h:form>
<h:inputText   value= "#{person.name} "/>
//...
<h:commandButton>
<f:actionListener   type= "PersonListener "/>
</h:commandButton>
</h:form>


这里有个Bean,已经在config中注册了:

public   class   Person{
//...
}


现在使用一个ActionListener,那在这个类中如何获取Person的实例呢(使用myfaces)?

public   PersonListener   implements   ActionListener{
public   void   processAction(ActionEvent   event){
//how   could   I   get   the   person   instance   in   the   above   jsf   page?
}
}



------解决方案--------------------
public PersonListener implements ActionListener{
public void processAction(ActionEvent event){
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding =
context.getApplication().createValueBinding( "#{person} ");
Person person = (Person) binding.getValue(context);
}
}


------解决方案--------------------
为何你的程序与JSF耦合得如此强?
------解决方案--------------------
jsp调用Bean.比较直接一点,就用getXXX()获取,,,setXXX赋值..
或者,直接用jsp标签..

别把问题想复杂了.
------解决方案--------------------
to ochinchina() :
我是个新手,对这个不太熟悉。那你认为该如何做才能降低耦合度呢?谢谢!