JSF notes

原创 2015年11月19日 17:33:12

Below are some notes for developing a web application using JSF2.

1- @ManagedBean(name="somename") - annotation to register a normal java POJO into JSF to be managed;

2- @SessionScoped - put a bean into HttpSession

3- @RequestScoped - put a bean into HttpRequest

4- @ViewScoped - put a bean into HttpSession untill the next form post request comes in; this will consume server memory/disk, should take that into account while designing;

5- Get Spring context -

    ApplicationContext ctx = FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance());

6- Get managed beans annonated with @SessionScoped -

 FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("beanname");

7- Get managed bean annonated with @ViewScoped -

 FacesContext.getCurrentInstance().getViewRoot().getViewMap().get("beanname");

8- Get managed bean annonated with @RequestScoped -

 FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("beanname");

9- Get managed bean annonated with @ApplicationScoped -

 FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get("beanname");

10- ExternalContext is a context which wrapped servletContext -

       ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
       ec.redirect(ec.getRequestContextPath() + "/pagesRichfaces/datadumpreport.jsf");

11- Use to trigger some back beans action with request attriutes -

    <c:if test="#{param['fromclient'] eq 'true'}">
           <f:event listener="#{sessionBean.autoLogin}" type="postAddToView"/>
           <f:attribute name="fromclient" value="true"/>
           <f:attribute name="username" value="#{param['username']}"/>
           <f:attribute name="pass" value="#{param['userpass']}"/>
    </c:if>
   #{param['somekey']} - to get parameters in URL
    public void autoLogin(ComponentSystemEvent event) {
        String clientKey = (String) event.getComponent().getAttributes().get("fromclient");
        if (clientKey != null) {
            this.userName = (String) event.getComponent().getAttributes().get("username");
            this.pass = (String) event.getComponent().getAttributes().get("pass");
        }
          ... do somthing
    }

12- Select element in JavaScript -

    <h:form id="hform">....</h:form>
    <script>
         #{rich:element('hname')}.value="test";
    </script>

13- Ajax to access backend bean

    <h:selectBooleanCheckbox>
        <f:ajax event="click" listener="#{helloJsf.selectAll}" />
    </h:selectBooleanCheckbox>
    /*
     * Accept <f:ajax/> request 
     */
    public void selectAll(AjaxBehaviorEvent event){
       System.out.println("selectAll...");
   }

14- valueChangeListener for <h:selectBooleanCheckbox/>
valueChangeListener is totally a server side event, and only be captured after the form was submitted.

<h:form id="form1" prependId="false">
    <h:selectBooleanCheckbox valueChangeListener="#{helloJsf.valueChange}"/>
    <h:commandButton value="submit"/>
</h:form>
    /*
     * Accept valueChangeEvent request 
     */
    public void valueChange(ValueChangeEvent event){
       System.out.println("valueChange...");
   }

15- Use JavaScript in JSF
Below JavaScript will set all checkbox to be checked or nonchecked.

<h:form id="form1" prependId="false">
    <h:selectBooleanCheckbox  onclick="setCheckbox(this.checked)"/>
    <h:selectBooleanCheckbox/>
    <h:selectBooleanCheckbox/>
</h:form>
<script>
function setCheckbox(checked){
    var elements = document.forms['form1'].getElementsByTagName("input");
    for (var e in elements){
        if(elements[e].type == "checkbox")
            elements[e].checked = checked;
    }
}
</script>

java调用notes API 发送邮件

最近需要调用Notes java API来发送邮件.主要参考了以下两个博客: 1   http://www.blogjava.net/jiangmin/articles/76137.html这个博客完...
  • lihe2008125
  • lihe2008125
  • 2010年02月22日 17:37
  • 2258

Notes客户端命令参数选项

C:/Notes/Notes.exe =C:/Notes/MyNotes.ini根据mynotes.ini启动clientC:/Notes/Notes.exe dbName.nsf当notes cli...
  • snowdot23
  • snowdot23
  • 2004年08月20日 14:30
  • 1135

Notes&nbsp;ID忘记密码处理

當使用者忘記Notes ID的密碼時,如何回復密碼 1. 先取得使用者目前正在使用的ID. 2. 開啟Notes Administrator,執行摘取回復密碼。 3. 輸入管理者的ID 密碼 4. 選...
  • u012402276
  • u012402276
  • 2015年09月25日 11:32
  • 271

Notes 8/8.5 超慢解决之道的最佳实践

如果您使用的Lotus Notes客户端为8.0/8.5,  如果感觉非常慢,通过任务管理器看到lotus的进程占用的内存非常大。哦,这的确令人感到非常懊悔!那就快来试试这些吧!在使用notes 8....
  • MingleLui
  • MingleLui
  • 2010年04月09日 23:15
  • 2018

JSF文件下载的不同实现

本文列举了在JSF应用中实现文件下载的几种不同方法。 方法 1- 使用Servlet 这种方法使用一个servlet来实现文件下载, 在JSF页面上则使用commandLink或outputL...
  • huyouheng
  • huyouheng
  • 2012年03月08日 02:16
  • 1748

Lotus Notes 8 客户端可以更换界面风格主题 !

  
  • shichuanbao
  • shichuanbao
  • 2008年02月14日 17:29
  • 3768

JSF事件处理

JSF事件 动作事件 在按钮上使用action绑定一个动作方法(action  method),实际上JSF会为其自动产生一个「预定义的ActionListener」来处理事件,并根据其传回值来决定...
  • LJHABC1982
  • LJHABC1982
  • 2011年08月05日 16:51
  • 3003

JSP,Servlet,JSF 的区别

1.JSPJSP(JavaServer Pages) 是一种java视图技术,它运行在服务器上,允许我们写入模版文本(例如:客户端语言:HTML,CSS,JavaScript等)。JSP支持tagli...
  • taxueguilai1992
  • taxueguilai1992
  • 2015年11月06日 16:12
  • 2487

如何在 Notes 标准配置中重新创建工作空间和清除缓存?

Technote (troubleshooting) 问题 如何在 Notes 标准配置中重新创建工作空间和清除缓存? 解决问题 1. 使用DOS提示符,切换到Notes程...
  • Gavid0124
  • Gavid0124
  • 2014年12月01日 16:36
  • 945

JSF 文档参考

A4J 用户指南 目录 1. 介绍2. 开始使用Ajax4jsf 环境需求下载Ajax4jsf安装简单的 AJAX Echo 项目 JSP 页面数据 Beanfaces-config.xml...
  • sunjava1
  • sunjava1
  • 2014年08月13日 09:39
  • 1920
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSF notes
举报原因:
原因补充:

(最多只允许输入30个字)