刘政道 - 应用程序框架

《31天学会CRM项目开发(C#编程入门及项目实战)》作者,IT经理,程序员
  博客园  :: 新随笔  :: 联系 :: 管理

第五课:Richfaces经验总结(上)

Posted on 2010-02-05 09:22  刘政道  阅读(599)  评论(0编辑  收藏  举报
1、如何获取Request变量?
Richfaces 和php、asp、jsp的编程方式不一样,在后面三种语言中,如果要提取GET或POST中的变量很简单,例如php,在页面中<% echo $GET_['data'] %>。
在xhtml页面中,可以使 用#{param['data']},那么如何在javabean中取得这个变量data呢?可以通过这个代码。
Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();  
String data = (String)params.get("data");
如果是Post变量,在表单提交 后,直接取变量自身即可,例如,System.out.println(this.data);
其 它有用的变量有#{initParam['data']},取得是web.xml中定义的变量,http://#{header['host']}/指的 是当前系统的网址,含端口号。

2、 如何初始化页面?
给定一个记录id,如何取得这条记录的全部 字段呢?我们很容易在javabean中取出这条记录,例如使用selectRecordById(String id)给各字段变量赋值,那么怎样在xhtml页面中显示呢?
怎样在页面加载时调用方法 selectRecordById(String id)呢?办法是有的,在javabean中定义一个init变量,在其getInit()方法中加入selectRecordById(String id),然后在xhtml页面开始部分加入#{myBean.init}即可。

3、如何取得属性为session的 javabean?
这个是常用的,比如有一个名为login 的javabean,记录当前用户的属性和状态。
Login login = (Login) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("Login");
System.out.println(login.ID);
System.out.println(login.isLogin);