Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 在JSF2 h:inputText组件中使用引导相关标记_Jsf 2_Twitter Bootstrap - Fatal编程技术网

Jsf 2 在JSF2 h:inputText组件中使用引导相关标记

Jsf 2 在JSF2 h:inputText组件中使用引导相关标记,jsf-2,twitter-bootstrap,Jsf 2,Twitter Bootstrap,JSF2组件中是否有使用引导相关标记的方法?例如,我对使用bootstrap typeahead特性感兴趣,它需要 <h:inputText id="typeahead" type="text" data-provide="typeahead"></h:inputText> 但是由于h:inputText不存在提供的数据,它被剥离了,因此typeahead特性显然不起作用 取决于您使用的JSF版本 在JSF2.0/2.1中,不可能指定其他属性。JSFHTML呈现器将只呈

JSF2组件中是否有使用引导相关标记的方法?例如,我对使用bootstrap typeahead特性感兴趣,它需要

<h:inputText id="typeahead" type="text" data-provide="typeahead"></h:inputText>

但是由于h:inputText不存在提供的数据,它被剥离了,因此typeahead特性显然不起作用

取决于您使用的JSF版本

在JSF2.0/2.1中,不可能指定其他属性。JSFHTML呈现器将只呈现预定义的属性。您需要创建一个自定义渲染器来实现所需的任务。为了最小化样板代码,您必须扩展特定于实现的呈现程序。目前还不清楚您使用的是哪一种,因此这里只是一个针对Mojarra的示例:

import com.sun.faces.renderkit.html_basic.TextRenderer;

public class MyTextRenderer extends TextRenderer {

    @Override
    protected void getEndTextToRender(FacesContext context, UIComponent component, String currentValue) throws IOException {
        Object dataProvide = component.getAttributes().get("data-provide");

        if (dataProvide != null) {
            context.getResponseWriter().writeAttribute("data-provide", dataProvide, null);
        }

        super.getEndTextToRender(context, component, currentValue);
    }

}
按如下方式在faces-config.xml中注册以使其运行:

<render-kit>
    <renderer>
        <component-family>javax.faces.Input</component-family>
        <renderer-type>javax.faces.Text</renderer-type>
        <renderer-class>com.example.MyTextRenderer</renderer-class>
    </renderer>
</render-kit>    
请注意,“类型”属性默认为“文本”

或:

另见:
取决于您使用的JSF版本

在JSF2.0/2.1中,不可能指定其他属性。JSFHTML呈现器将只呈现预定义的属性。您需要创建一个自定义渲染器来实现所需的任务。为了最小化样板代码,您必须扩展特定于实现的呈现程序。目前还不清楚您使用的是哪一种,因此这里只是一个针对Mojarra的示例:

import com.sun.faces.renderkit.html_basic.TextRenderer;

public class MyTextRenderer extends TextRenderer {

    @Override
    protected void getEndTextToRender(FacesContext context, UIComponent component, String currentValue) throws IOException {
        Object dataProvide = component.getAttributes().get("data-provide");

        if (dataProvide != null) {
            context.getResponseWriter().writeAttribute("data-provide", dataProvide, null);
        }

        super.getEndTextToRender(context, component, currentValue);
    }

}
按如下方式在faces-config.xml中注册以使其运行:

<render-kit>
    <renderer>
        <component-family>javax.faces.Input</component-family>
        <renderer-type>javax.faces.Text</renderer-type>
        <renderer-class>com.example.MyTextRenderer</renderer-class>
    </renderer>
</render-kit>    
请注意,“类型”属性默认为“文本”

或:

另见:
我正在使用mojarra 2.2.4,但它没有。是我的mojarra库的问题还是需要更多配置。谢谢。我正在使用mojarra 2.2.4,但它没有。是我的mojarra库的问题还是需要更多配置。谢谢