自定义组件方法encodeBegin

时间:2013-12-05 17:53:41

标签: html jsf

在424页的David Geary, Cay S. Hortsmann- Core JavaServer Faces 3rd edition 2010一书中写了以下内容:

public void encodeBegin(FacesContext context) throws IOException {
    ResponseWriter writer = context.getResponseWriter();
    String clientId = getClientId(context);
    // Encode input field
    writer.startElement("input", this);
    writer.writeAttribute("name", clientId, null);
    Object v = getValue();
    if (v != null) writer.writeAttribute("value", v, "value");
    Object size = getAttributes().get("size");
    if (size != null) writer.writeAttribute("size", size, "size");
    writer.endElement("input");
    ...
}

type属性必须是input标记。为什么会这样?

2 个答案:

答案 0 :(得分:1)

它创建的输入字段没有像value作为文本和最多size个字母的白框一样的功能。在HTML5中,默认类型为text

答案 1 :(得分:1)

如果您想要输入文字,则无需指定type

来自W3C

  

type = text | password | checkbox | radio | submit | reset | file | hidden | image | button [CI]       此属性指定要创建的控件的类型。此属性的默认值为“text”。