您的位置:首页 > Web前端 > JavaScript

jsf自定义组件-jafyear选择年份

2008-04-10 18:48 465 查看
 
就是一个下拉框,可以配置选取的范围,用today表示当期年份,输入简单表达式。 
 


package com.cfcc.jaf.webx.component.jafdate.jafyear;




import javax.faces.component.UIComponentBase;


import javax.faces.context.FacesContext;






/** *//**


 * 年份选择框组件


 * @author qinjinwei


 * $date 2007-9-12 上午09:52:28


 */




public class JafYear extends UIComponentBase ...{


    


    public final String JAF_DATE_FAMILY = "jaf.jafdate";






    public String getFamily() ...{


        return JAF_DATE_FAMILY;


    }


    




    public Object saveState(FacesContext context) ...{


        Object values[] = new Object[1];


        values[0] = super.saveState(context);


        return values;


    }






    public void restoreState(FacesContext context, Object state) ...{


        Object values[] = (Object[]) state;


        super.restoreState(context, values[0]);




    }




}


 


package com.cfcc.jaf.webx.component.jafdate.jafyear;




import java.io.IOException;


import java.util.Date;


import java.util.Map;




import javax.faces.component.UIComponent;


import javax.faces.context.FacesContext;


import javax.faces.context.ResponseWriter;


import javax.faces.el.ValueBinding;




import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRenderer;






/** *//**


 * 年份选择框组件renderer


 * @author qinjinwei


 * $date 2007-9-12 上午09:52:30


 */




public class JafYearRenderer extends HtmlRenderer ...{




    public void encodeEnd(FacesContext facesContext, UIComponent component)




            throws IOException ...{


        


        String sfrom = (String) component.getAttributes().get("from");


        String sto = (String) component.getAttributes().get("to");


        int ifrom = convert(sfrom) + 1900;


        int ito = convert(sto) + 1900;


        ResponseWriter writer = facesContext.getResponseWriter();


        String clientId = component.getClientId(facesContext);


        


        


        ValueBinding vb = component.getValueBinding("value");


        String syear = (String) vb.getValue(facesContext);


        if(syear == null)




        ...{


            syear = "" + (new Date().getYear() + 1900 );


        }


        


        int year = Integer.parseInt(syear);




        writer.write(" ");




        for (int i = ifrom; i 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsf import string null class date