JSF与后台程序的交互

JSF与后台程序的交互
如果Managed-Bean已经被创建并存在,则可以通过下面的形式访问session范围内的Managed-Bean
org.test.TestBean x  =  (org.test.TestBean) request.getSession().getAttribute( " testBean " );


如果不存在,则需要先访问一下Managed-Bean,让他被触发而创建
org.test.TestBean x  =  (org.test.TestBean) Util.getBean( " testBean " ); 

// In Util.java:
public   static  Object getBean(String expr) {
FacesContext context 
= FacesContext.getCurrentInstance();    
Application app 
= context.getApplication(); 
ValueBinding binding 
= app.createValueBinding("#{" + expr + "}");
Object value 
= binding.getValue(context);  
return value;
}


为JSF指定Action,可以这样写:
              < h:commandButton action = " #{user.verify} "  value = " Say Hello! " >                  
             
</ h:commandButton >
User类中的代码:
     public  String verify()
    
{
        
return "hello";
    }
faces-config.xml中:
  < managed-bean >
  
< description > User Name Bean </ description >
  
< managed-bean-name > user </ managed-bean-name >
  
< managed-bean-class > demo.User </ managed-bean-class >
  
< managed-bean-scope > session </ managed-bean-scope >
 
</ managed-bean >
 
< navigation-rule >
  
< from-view-id > /pages/inputUserName.jsp </ from-view-id >
  
< navigation-case >
   
< from-outcome > hello </ from-outcome >
   
< to-view-id > /pages/hello.jsp </ to-view-id >
  
</ navigation-case >
 
</ navigation-rule >
这样,点击按钮,就会转到verify方法中进行验证,然后返回相应结果的字符串,jsf根据返回的结果进行相应的页面跳转。





---------------------------------------------------------
专注移动开发
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian

你可能感兴趣的:(JSF与后台程序的交互)