关闭

<rich:modalPanel/> 在seam框架下的具体应用

标签: seam框架facetactionuibutton
399人阅读 评论(0) 收藏 举报
分类:

步骤如下:

1.在WebContent的目录pages/tools下建立模版confirmModal.xhtml.具体内容如下(预先已经准备好alignCenter.xhtml文件):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<!--
  确认模式对话框,参数:
 id  模式对话框ID
 title 对话框标题
 mes     提示内容
 actionBean[action] 确认后跳转的action
 refresh 需要刷新的区域
-->
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
 xmlns:s="http://jboss.com/products/seam/taglib"
 xmlns:h="http://java.sun.com/jsf/html"
 xmlns:f="http://java.sun.com/jsf/core"
 xmlns:ui="http://java.sun.com/jsf/facelets"
 xmlns:rich="http://richfaces.org/rich"
 xmlns:auth="http://java.fonsview.com/iptv/auth"
 xmlns:a="http://richfaces.org/a4j"
 >
<f:subview id="#{id}_subview"> 
 <rich:modalPanel id="#{id}"  height="122" width="342">
  <f:facet name="header">
   <h:panelGroup>
    <h:outputText value="#{title}" />
   </h:panelGroup>
            <f:facet name="controls">
              <h:panelGroup>
               <h:graphicImage value="/img/160/icon_three.gif" styleClass="hidelink" id="hidelink"/>
              </h:panelGroup>
            </f:facet>
        </f:facet>
  <ui:decorate template="/layout/alignCenter.xhtml">
    <br/>
          <h:outputText value="#{mes}" template="/layout/alignCenter.xhtml"/>
          <br/>
        </ui:decorate>
  <h:panelGrid columns="1" width="100%">
   <ui:decorate template="/layout/alignCenter.xhtml">
    <a:form>
     <a:commandButton id="confirmOk"
       styleClass="button1"
       value="#{msg['cmd.ok']}"
                         action="#{actionBean[action]}"
       reRender="#{refresh}"
       limitToList="true"
       ajaxSingle="true"
       />  
       
     <rich:spacer width="15px" />
     <a:commandButton id="confirmCancel"
       styleClass="button1"
       value="#{msg['cmd.cancel']}"
       limitToList="true"
       ajaxSingle="true"
       />
     <rich:componentControl for="#{id}"
       attachTo="confirmOk,confirmCancel,hidelink"
       operation="hide"
       event="onclick"/>
    </a:form>
   </ui:decorate>
  </h:panelGrid>
 </rich:modalPanel>
</f:subview> 
</ui:composition>

值得注意的是<rich:modalPanel/>不能被form包含。否则<rich:modalPanel/>无法显示。

 2.具体界面使用的模版配置如下:

<ui:insert name="modalPanelDef"></ui:insert>

3.具体界面调用模版如下所示:

 <ui:define name="confirmmodalPanel"> 
   <ui:include src="/pages/tools/confirmModal.xhtml" >
             <ui:param name="id" value="confirmmodalPanel" />
             <ui:param name="title" value="#{msg['web.delete']}" />
             <ui:param name="mes" value="#{msg['web.delete.confirm']}" />
             <ui:param name="actionBean" value="#{productAction}"/>
             <ui:param name="action" value="deleteProduct" /> 
             <ui:param name="refresh" value="data" /> 
         </ui:include>
  </ui:define>

其中

<ui:param name="actionBean" value="#{productAction}"/>
设置的是后台具体要调用的类。

  <ui:param name="action" value="deleteProduct" /> 
设置的是具体要调用的方法。(我在测试时,总是不能在方法中传递参数。)

4.按钮实际调用如下:

 <a:commandButton styleClass="button4"
         value="#{msg['global.applicationRemove']}"
         disabled="#{(0 == productAction.product.id and 7 != productAction.product.status)  or (0 != productAction.product.status and 7 != productAction.product.status)}"
         reRender="data"
         oncomplete="Richfaces.showModalPanel('confirmmodalPanel');" />

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9553次
    • 积分:33
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:3篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论