jsf框架常用的标签有哪些?jsf的生命周期是怎样的?

阳光 2022-01-27 19:49:47 java常见问答 6198

JSF它既是 Java Web 应用程序的用户界面标准又是严格遵循模型-视图-控制器设计模式的框架。那jsf框架常用的标签有哪些?下面来我们就来给大家讲解一下jsf框架常用的标签。

1.h:commandButton 删除一个对象。

<h:commandButton value="删除厨房" οnclick="return confirm('确定删除?')" action="#{kitchenController.delete()}">
    <f:setPropertyActionListener target="#{kitchenController.kitchen.id}" value="#{kitchen.id}"/> <
/h:commandButton>

2.点击 h:selectOneRadio 刷新。

<f:selectItem itemValue="all"  itemLabel="全部"/> <
 f: selectItem itemValue = "can"
 itemLabel = "看允许发布餐饮的厨房" / >
     <f:selectItem itemValue="cannot"  itemLabel="看不允许发布餐饮的厨房"/> <
     /h:selectOneRadio>

3.按钮提交 h:selectOneRadio 的更新。

针对该厨房的订单,是否需要中央管理后台审核

<h:form>
    <span>针对该厨房的订单,是否需要中央管理后台审核</span><br></br>
    <h:selectOneRadio value="#{kitchen.needAuditOrders}">
        <f:selectItem itemValue="true"  itemLabel="需要审核"/>
        <f:selectItem itemValue="false"  itemLabel="不需要审核"/>                 
    </h:selectOneRadio>
                                                       
    <h:commandButton value="提交" action="#{kitchenController.modifyCheck()}" class="submit_review">
        <f:setPropertyActionListener target="#{kitchenController.kitchen.id}" value="#{kitchen.id}" />
        <f:setPropertyActionListener target="#{kitchenController.kitchen.needAuditOrders}" value="#{kitchen.needAuditOrders}"/>
    </h:commandButton>   
</h:form>

如果是修改list 里的内容,必须保证list 不更新。

public List<Kitchen> getKitchens(){
    if(kitchens != null && !refreshList){
        return kitchens;
    }
    // 其他代码
 
    return kitchens;
}

4.f:validateRegex 匹配电话。

<label for="admin_contact">联系电话(如:13866669999)</label> <
h: message
for = "admin_contact"
style = "color:red"
class = "error-message" / >
    <h:inputText value="#{kitchenController.adminTel}" validatorMessage="格式不正确" requiredMessage="必填" required="true" id="admin_contact" class="text ui-widget-content ui-corner-all">
    <f:validateRegex pattern="((?=.*\d).{11})" />
</h:inputText>

<f:validateRegex pattern="((?=.*\d)(?=.*[-]).{12}|(?=.*\d).{11})" />
5. c: if < c: forEach
var = "admin"
items = "#{kitchenController.admins}" >
    <c:if test="#{admin.loginId == kitchen.adminId}">
        <span>duty:</span><span class="admin_role">#{admin.duty}</span>
        <span>tel:</span><span class="admin_contact">#{admin.tel}</span>
    </c:if> <
    /c:forEach>
6. c: choose <
    c: choose >
    <c:when test="${..}">...</c:when> < !--
if condition-- >
<c:when test="${..}">...</c:when> < !--
else if condition-- >
<c:otherwise>...</c:otherwise> < !--
else condition-- >
    </c:choose>

jsf的生命周期是怎样的?

FacesServlet 充当用户和 JSF 应用程序之间的纽带。它在明确限定的 JSF 生命周期(规定了用户请求之间的整个事件流)的范围内工作。

1. 当JSF页面上的一个事件发生时(比如:用户单击了一个按钮),事件通知通过HTTP发往服务器。服务器端使用FacesServet这个特殊的Servlet处理该通知。

2. FacesServlet一接收到用户的请求就创建一个FacesContext对象(JSF上下文,它存放了应用程序的所有数据)。在处理过程中,主要修改的就是这个FaceContext对象。

3. 接着就是处理过程,处理器是一个叫作Lifecycle的对象。FacesServet把控制权转交给Lifecycle对象。该对象分6个阶段来处理FacesContext对象以生成响应,最后将响应发回客户端。

Lifecycle对象处理JSP请求所需要的一系列动作称为请求处理生命周期。过程状态图如下:

jsf框架常用的标签有哪些?jsf的生命周期是怎样的?.jpg

jsf框架提供了一种以组件为中心的用户界面构建方法,从而简化了Java服务器端应用程序的开发。最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

ajax为什么不能跨域?ajax解决跨域问题方法

java能应用于哪些方面?原来可以应用这些!

qt有必要学吗?学习qt要哪些基础?