`
yourenyouyu2008
  • 浏览: 287746 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于jsf的批量编辑,可编辑table

    博客分类:
  • jsf
阅读更多

动态table是经常用到的功能,一般的做法是通过js在客户端实现,jsf可以让我们简单地在服务器实现同样的功能,不需要写任何js代码。效果如附件所示(可以动态增加行,编辑全部行后一起保存,当然也可以非常简单的删除行)。

tableeditError.bmp表示每行可以即时验证输入错误,而不是全部录入完成后统一提示输入错误

 

页面如下:其中h:dataTable和rich:dataTable两部分是相同的,只是rich:dataTable更好些

<h:form id="modalPanelid">
            <h:outputText value="h:dataTable没法刷新单行,只能刷新整个table,问题是tab键功能失效" />
              <h:dataTable id="itemList" value="#{ents}" var="ent">
                  <h:column>
                  <f:facet name="header">long1</f:facet>
                  <h:inputText value="#{ent.long1}" />
                  </h:column>
                  <h:column>
                  <f:facet name="header">double1</f:facet>
                  <s:div id="doubleDiv">
                      <h:inputText id="doubleid" value="#{ent.double1}">
                      <a:support event="onblur" reRender="doubleDiv"/>
                      </h:inputText>
                      <h:message for="doubleid"/>
                  </s:div>
                  </h:column>
                  <h:column>
                  <f:facet name="footer">
                  <a:commandButton action="#{tableEditAction.addOne}" value="增加" reRender="itemList"></a:commandButton>
                  </f:facet>
                  </h:column>
              </h:dataTable>
             
              <h:outputText value="rich:dataTable解决了h:dataTable的刷新问题" />
              <rich:dataTable id="itemList2" value="#{ents}" var="ent" >
                  <rich:column>
                  <f:facet name="header">long1</f:facet>
                  <rich:inplaceInput layout="block" value="#{ent.long1}"
                                    id="inplace" required="true" changedHoverClass="hover"
                                    viewHoverClass="hover" viewClass="inplace"
                                    changedClass="inplace" selectOnEdit="true" editEvent="onclick">
                                </rich:inplaceInput>
                  </rich:column>
                  <rich:column>
                  <f:facet name="header">double1</f:facet>
                  <s:div id="doubleDiv2">
                      <h:inputText id="doubleid2" value="#{ent.double1}">
                      <a:support event="onblur" reRender="doubleDiv2"/>
                      </h:inputText>
                      <h:message for="doubleid2"/>
                  </s:div>
                  </rich:column>
                  <rich:column>
                  <f:facet name="footer">
                  <a:commandButton action="#{tableEditAction.addOne}" value="增加" reRender="itemList2"></a:commandButton>
                  </f:facet>
                  </rich:column>
              </rich:dataTable>
              <s:div>
                  <h:commandButton action="#{tableEditAction.save}" value="保存"></h:commandButton>
              </s:div>
        </h:form>

 

java类

@Name("tableEditAction")
@Scope(ScopeType.CONVERSATION)
public class TableEditAction {
    @Out
    private List<EntImport> ents=new ArrayList<EntImport>();
   
    public void addOne(){
        EntImport ent=new EntImport();
        ents.add(ent);
    }
    public void save(){
        for(EntImport ent:ents){
            System.out.println("----ent.getLong1:"+ent.getLong1());
        }
    }
}

要求:table的value值的scope必须大于request,一般来说是CONVERSATION的,这样增加新行时才不会丢失以前的行。

 

  • 大小: 2.2 KB
  • 大小: 4 KB
1
0
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包7

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包9

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包101

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    Java资源包01

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

Global site tag (gtag.js) - Google Analytics