葡京国际平台【转】JSF中的老三老中心组件 UI标签的详尽介绍及采用举例

有人说,如果你对“年终总结”这四只字感到有压力,那就算证实您顿时同样年从未做出什么值得一提的从。

JSF提供了大量之UI标签来简化创建视图。这些UI标签类似于ASP.NET受到之服务器组件。使用这些标签,可以由此其value,binding,action,actionListener等性直接绑定到托管Bean的性能,实例或者措施及。

同等语击中心的,我的下压力真的来自本身立等同年之素食,我弗思量用总结来直给我之心扉,我的懈怠,年初的朴与年底各种打脸形成明显的对比,让自身倍感忧虑。

1、JSF中之老三好骨干组件:

一致开始,我虽打定主意年底虽不写总结了,无奈临近新春佳节各国大公众号、学习平台、社群都绕总结及新年计划展开讨论,相关文章时出现在对象围里,仿佛在刻意提醒那些还尚无起发作总结计划之人,也包括自己。

a、 JSF容器管理之托管Bean
b、 JSF提供的UI标签,应用界面的UI标签直接绑定到托管Bean
c、 页面导航规则

以三茅的最后一个学学日相不少HR小伙伴关于展望2018底打卡分享后,我算产了决定去下结论一下且过去的2017,尽管就无异于年还平淡无奇,没有什么坏的获,也恰恰因为这么,我更该在当下最后几上留下些什么,哪怕只有是一样首总结。

脚我们虽来介绍UI标签:

简短以下几只地方总一下自身的2017:

2、JSF中的UI标签:

工作

JSF与JSP的签的别在于,JSF的标签可以行使value,binding,action和actionListener等性能直接绑定到托管Bean上面去。

实际上不顶思念聊工作,今年凡本身于职场最为忧虑的一致年,工作于丝毫从未挑战性,对于个体技术方面的晋级为未尝实质性的声援,让祥和沦为了不甘于现状,又不明白从哪里变动之怪圈。酝酿了好长远,11月份算是鼓足了提出了辞去,却还要盖好去意不绝,在和boss一衔接长称后,最终甄选继续留,我无知底留下是控制是否科学,也未亮堂新的一致年会怎么样,目前依然很盲目。

JSF包括个别组标签库:jsf_core.tld核心标签库和html_basic。tld
HTML标签库。

学习

2.1、JSF核心标签库:

至于自己提升点,今年也报了几乎独线上课程:

f:actionListener
f:attribute
f:convertDateTime
f:convertNumber
f:converter
f:facet
f:loadBundle
f:param
f:phaseListener
f:selectItem
f:selectItems
f:setPropertyActionListener
f:subview
f:validateDoubleRange
f:validateLength
f:validateLongRange
f:validator
f:valueChangeListener
f:verbatim
f:view

21天写字训练营,我先是独申请学习的丝上课程,我并从未就此练就一手好配,主要因是自己没有坚持,但我依然看这课程物超所值。因为在场这么一个训练营,我接近链接一个了新的社会风气,里面来极端多好没接触过的东西。我惊喜、我焦虑与不安,恨不得快速的把小伙伴们提及到之“新鲜事物”都感受一番。也是当是训练营里,我发现了,我和大多数不遗余力的人数中间的差距,他们能用得出各种各样的技艺,验证了那么句:比你美好之人不可怕,可怕的凡比你优质之丁比较你再度大力。

至于个标签的事无巨细介绍,可以参见JSF自带的扶助文档:

巧为有如此发现,我就报名与了21上创作训练营,想要提升自己写作水平,训练营结束后加盟学员自然组织的等同宏观一样首文章的写作群,坚持每周有输出,至今以简书已履新38首文章,算不达标高产,但自我仍然感谢自己之坚持。

JSF解压目录\tlddocs\index.html

顿时点儿个科目结束之后,还报了声音训练营,遗憾的是课程结束以后,就又写没有坚持练声,现在声响还是不好听,普通话还是常见。前段时间想在重拾英语,又报了单英语课程,结果三分钟热度,课程现在还尚未起放。

2.2、JSF的HTML标签:

生活

h:commandButton
h:commandLink
h:dataTable
h:form
h:graphicImage
h:inputHidden
h:inputSecret
h:inputText
h:inputTextarea
h:message
h:messages
h:outputFormat
h:outputLabel
h:outputLink
h:outputText
h:panelGrid
h:panelGroup
h:selectBooleanCheckbox
h:selectManyCheckbox
h:selectManyListbox
h:selectManyMenu
h:selectOneListbox
h:selectOneMenu
h:selectOneRadio
h:column

反之亦然记得好当17年新春钟声敲响的时节许下的意思,希望自己以25岁至前会无往不利脱单,谈一庙小恋爱。现在想,愿望总是美好的,现实也是残忍之,经历了少不好亲密事件后,突然看有些累了,于是告诉要好顺其自然吧。

关于个标签的详细介绍,可以参照JSF自带的援手文档:

存就未如愿,但为不缺少小惊喜,顺利将到了驾照,三茅11月征文意外获奖,虽然就生50独茅豆,却也是指向己的同样种植鞭策。

JSF解压目录\tlddocs\index.html

2017目标成功情况以及2018计划

2.3、UI标签的通用属性:

顿时无异年无我们了之好及甚,它还快要成为千古,不必遗憾,不必感叹……

JSF的UI大都会转移一个还是多只HTML标签,所以下这些UI标签有时有性是通用的:

2018加油、努力!

id
immediate:是否立即处理UIInput组件和实现了ActionSource接口的UI组件上事件
rendered:指定条件表达式,当条件表达式为true时才会绘制组件
required:指定用户是否必须为组件输入值
requeredMessage:与requered一起使用,如果没有输入时提示信息
value:该组件的值绑定到托管对象上
onblur
onchange
onclick
ondblclick
onfocus
onkeydown
onkeypress
onkeyup
onmousedown
onmousemove
onmouseout
onmouseover
onmouseup
style
styleClass
binding:将组件本身绑定到托管Bean

2.4、<f:view>标签的常用属性:

locale:指定国家语言
renderKitId:JSF根据该属性值选择相应之绘制器工具箱来绘制该页面
beforePhase:绑定生命周期监听器(必须产生public void
beforePhase(Java.faces.event.PhaseEvent)形式的签字),JSF会在每个生命周期阶段(除了回复视图)之前调用该措施。
afterPhase:绑定生命周期监听器(必须产生public void
afterPhase(java.faces.event.PhaseEvent)形式之签约),JSF会在每个生命周期阶段(除了回复视图)之后调用该措施。

3、UI标签的使用举例:

3.1、<h:form>和核心输入标签的利用:

<f:view>
    <h1>表单标签</h1>
    <h:form>
        单行文本框:<h:inputText value="#{userbean.username }" /><br />
        密码框:<h:inputSecret value="#{userbean.password }" /><br />
        多行文本区:<h:inputTextarea rows="3" cols="20" /><br />
        隐藏域:<h:inputHidden value="#{userbean.message }" /><br />
    </h:form>
</f:view>

中<h:inputText>和<h:inputSecret>可以指定一个size属性用于指定输入框的无限特别尺寸。

3.2、多选择标签的用:

<h1>多选标签的使用</h1>
<h:form>
    <!-- 复选框 -->
    <h:selectManyCheckbox value="#{userbean.booklist }">
        <f:selectItem itemLabel="Core Java" itemValue="Java" />
        <f:selectItem itemLabel="Thinking in C++" itemValue="C++" />
        <f:selectItem itemLabel="Spring Internals" itemValue="Spring" />
    </h:selectManyCheckbox>

    <!-- 生成一个允许多选的列表框 -->
    <h:selectManyListbox value="#{userbean.booklist }" size="5">
        <f:selectItem itemLabel="Core Java" itemValue="Java" />
        <f:selectItem itemLabel="Thinking in C++" itemValue="C++" />
        <f:selectItem itemLabel="Spring Internals" itemValue="Spring" />
    </h:selectManyListbox>

    <!-- 生成一个允许多选的复合框 -->
    <h:selectManyMenu value="#{userbean.booklist }">
        <f:selectItem itemLabel="Core Java" itemValue="Java" />
        <f:selectItem itemLabel="Thinking in C++" itemValue="C++" />
        <f:selectItem itemLabel="Spring Internals" itemValue="Spring" />
    </h:selectManyMenu>
</h:form>

使方面的老三只标签须同<f:selectItem>或者<f:selectItems>标签结合使用,其中的<f:selectItem>3只属性之义:

itemLabel:可视化标签值
itemValue:点名生成列表项或者复选框的价
value:暨外的UI标签的value属性不同,不是拿该器件的值绑定到托管Bean,而是将拖欠器件本身绑定到托管Bean

即时三只标签的value属性值必须是一个List或者数组。

3.3、单选取标签的下:

<h1>单选标签的使用</h1>
<h:form>
    <!-- 生成一组单选按钮 -->
    <h:selectOneRadio value="userbean.booklist">
        <f:selectItem itemLabel="Core Java" itemValue="Java" />
        <f:selectItem itemLabel="Thinking in C++" itemValue="C++" />
        <f:selectItem itemLabel="Spring Internals" itemValue="Spring" />
    </h:selectOneRadio>
    <!-- 生成一个只允许单选的列表框 -->
    <h:selectOneListbox value="userbean.booklist" size="5">
        <f:selectItem itemLabel="Core Java" itemValue="Java" />
        <f:selectItem itemLabel="Thinking in C++" itemValue="C++" />
        <f:selectItem itemLabel="Spring Internals" itemValue="Spring" />
    </h:selectOneListbox>
    <!-- 生成一个只允许单选的下来菜单 -->
    <h:selectOneMenu value="#{userbean.booklist }">
        <f:selectItem itemLabel="Core Java" itemValue="Java" />
        <f:selectItem itemLabel="Thinking in C++" itemValue="C++" />
        <f:selectItem itemLabel="Spring Internals" itemValue="Spring" />
    </h:selectOneMenu>
</h:form>

当即三只标签和前边介绍的老三独标签的功力基本相似,只是这里的只能单选。

3.4、UISelectBoolean组件的采用:

<h:selectBooleanCheckbox />

于页面上十分成一个复选框,用于勾选或者撤回勾选该复选框

和方三独复选框不同,它的value属性必须绑定到托管Bean中boolean类型的属性,不需要与<f:selectItem>标签一起下。

3.5、UICommand组件的下葡京国际平台:

<h1>UICommand组件的使用</h1>
<h:form>
    <!-- 生成一个可以提交表单的按钮 -->
    <h:commandButton value="点击" />
    <!-- 生成一个图片按钮 -->
    <h:commandButton image="images/01.jpg" />
    <!-- 生成一个可以提交表单的超链接 -->
    <h:commandLink value="提交表单" />
    <!-- 生成一个可以提交表单的图片链接 -->
    <h:commandLink shape="circle" coords="20,20,10">
        <img src="images/01.jpg" />
    </h:commandLink>
</h:form>

3.6、UIOutput对应之出口组件的使用:

<h1>UIOutput对应的输出组件的使用</h1>
<!-- 使用outputText标签输出国际化资源 -->
<h:outputText value="#{userInfo.username }" />
<!-- 使用outputText标签输出Bean属性 -->
<h:outputText value="#{userbean.username }" />
<!-- 生成Label标签 -->
<h:outputLabel value="#{userbean.username }" />
<!-- 生成超链接 -->
<h:outputLink value="http://www.itzhai.com">IT宅</h:outputLink>
<!-- 输出带占位符的国际化消息 -->
<h:outputFormat value="#{userInfo.message }">
    <f:param value="arthinking" />
</h:outputFormat>

此间运用及了国际化资源,需要创造:

每当faces-config.xml问价中加载国际化资源的配备:

<application>
    <resource-bundle>
        <base-name>com.itzhai.user</base-name>
        <var>userInfo</var>
    </resource-bundle>
</application>

接下来于com.itzhai目录下创办一个国际化资源文件的basename为user:

username="arthinking"
message=用户名:{0}

3.7、panelGrid和panelGroup的使用:

<h1>panelGrid标签的使用</h1>
    <h:panelGrid columns="3" width="300px" border="1">
        <!-- 生成表格标题 -->
        <f:facet name="caption">
            <h:outputText value="表格标题" />
        </f:facet>
        <!-- 生成表格头 -->
        <f:facet name="header">
            <h:outputText value="表格头" />
        </f:facet>
        <h:outputText value="1" />
        <h:outputText value="2" />
        <h:outputText value="3" />
        <!-- panelGroup的使用 -->
        <h:panelGroup layout="block" style="color:#cfcfff">
            <h:outputText value="4" />
            <h:outputText value="5" />
        </h:panelGroup>
        <h:outputText value="6" />
        <h:outputText value="7" />
    </h:panelGrid>

panelGrid用于转移表格,panelGroup用于把多单元素做一个要素。

3.8、使用UIData迭代输出从数据源中获取之数码:

<h1>dataTable的使用</h1>
<h:dataTable width="600px" border="1" value="showbook.bookList" var="book" rowClasses="odd,even">

    <!-- 使用facet生成caption -->
    <f:facet name="caption">
        <h:outputText value="book list" />
    </f:facet>

    <!-- 定义第一列 -->
    <h:column>
        <f:facet name="header">
            <h:outputText>图书名</h:outputText>
        </f:facet>
        <h:inputText value="#{book.name }" size="3" />
    </h:column>
    <!-- 定义第二列 -->
    <h:column>
        <f:facet name="header">
            <h:outputText>图书分类</h:outputText>
        </f:facet>
        <h:outputLink value="#{book.url }">
            <h:inputText value="#{book.bookClass }" />
        </h:outputLink>
    </h:column>

    <!-- 生成表格底部 -->
    <f:facet name="footer">
        <h:panelGroup>
            <h:outputText value="计算机书籍" />
        </h:panelGroup>
    </f:facet>
</h:dataTable>

脚用以号称也showbook的托管Bean中提供一个bookList数据源,可以当他的get方法中提供数据:

public List<BookInfo> getBookList(){
    List<BookInfo> books = new ArrayList<BookInfo>();
    books.add(new BookInfo("Core Java", "Java", "www.itzhai.com"));
    books.add(new BookInfo("Core Java", "Java", "www.itzhai.com"));
    books.add(new BookInfo("Core Java", "Java", "www.itzhai.com"));
    return books;
}

其中的BookInfo类如下:

public class BookInfo {

    private String name;
    private String url;
    private String bookClass;

    public BookInfo(String name, String bookClass, String url){
        this.name = name;
        this.bookClass = bookClass;
        this.url = url;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getBookClass() {
        return bookClass;
    }
    public void setBookClass(String bookClass) {
        this.bookClass = bookClass;
    }
}

3.9、图像组件的利用:

<h:graphicImage value="images/01.jpg" alt="图像01" />

是标签将生成HTML的img标签。