长风 爱 跑步去

长风博客

jsf 创建自定义组件

写个自定义按纽的组件,给大家可以参考一下:
 第一步:
package cn.jsf.fgliu

import javax.faces.component.UIComponent;
import javax.faces.webapp.UIComponentTag;

public class NewButtonTag extends UIComponentTag {
    
    private String name;
    private String style;
    private String value;
    
    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getStyle() {
        return style;
    }

    public void setStyle(String style) {
        this.style = style;
    }

    public String getComponentType() {
        // TODO 自动生成方法存根
        return "NewButton";
    }

    public String getRendererType() {
        // TODO 自动生成方法存根
        return null;
    }
    protected void setProperties(UIComponent component){
        super.setProperties(component);
        NewButton button = (NewButton) component;
        if (name != null) {
            button.setName(name);
        }
        if(style!=null){
            button.setStyle(style);
        }
        if(value!=null)
            button.setMyValue(value);
        
    }

}

第二步:
package cn.jsf.fgliu

import 编程.io.IOException;

import javax.faces.component.UIOutput;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;

public class NewButton extends UIOutput {
   
    private String name;
    private String style;
    private String myValue;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getStyle() {
        return style;
    }

    public void setStyle(String style) {
        this.style = style;
    }

    protected String getComponentType() {
        return "NewButton";
    }
   
    public void encodeEnd(FacesContext context) throws IOException {
        ResponseWriter writer = context.getResponseWriter();
        writer.write("<input type='button' name='"+ this.getName()+"' value = '"+ this.getMyValue()+"' style='"+this.getStyle()+"'>");
    }

    public String getMyValue() {
        return myValue;
    }

    public void setMyValue(String myValue) {
        this.myValue = myValue;
    }

}


第三步:
在WEB-INF/face-config.xml文件中加入该组件
 <component>
    <component-type>NewButton</component-type>
    <component-class>cn.jsf.fgliu.NewButton</component-class>
  </component>
第四步:
写tld文件
<taglib>
 <tag>
      <name>newButton</name>
      <tag-class>cn.jsf.fgliu.NewButtonTag</tag-class>
      <body-content>JSP</body-content>
      <description>my first button</description>
      <attribute>
         <name>id</name>
         <required>false</required>
         <rtexprvalue>false</rtexprvalue>
      </attribute>
      <attribute>
          <name>name</name>
          <required>false</required>
          <rtexprvalue>false</rtexprvalue>
      </attribute>
      <attribute>
          <name>style</name>
          <required>false</required>
          <rtexprvalue>false</rtexprvalue>
      </attribute>
      <attribute>
          <name>value</name>
          <required>false</required>
          <rtexprvalue>false</rtexprvalue>
      </attribute>
   </tag>
</taglib>

第五步:

在web.xml中加入
<taglib>
      <taglib-uri>http://www.cn.jsf.fgliu/button</taglib-uri>
      <taglib-location>/WEB-INF/button-tag.tld</taglib-location>
  </taglib>

第六步:
jsp页面中使用:
<%@ taglib uri="http://www.cn.jsf.fgliu/button" prefix="fgliu"%>

<fgliu:newButton  name="OK" value="ok"
        style="position:absolute;top:100px;left:61px;height:21px;width:80px;" />
这样就可以了,更多的内容请大家再多多交流。
阅读更多
个人分类: 技术空间
上一篇文件下载
下一篇JSF自定义组件
想对作者说点什么? 我来说一句

创建JSF自定义组件

2007年09月28日 152KB 下载

JSF创建自定义组件

2007年08月20日 171KB 下载

JSF自定义组件

2007年12月07日 202KB 下载

jsf2.0 自定义组件

2010年11月17日 3.17MB 下载

jsf自定义组件

2007年08月20日 150KB 下载

Windows XP Embedded 创建自定义组件

2009年05月04日 311KB 下载

没有更多推荐了,返回首页

关闭
关闭