关于UIData组件合理应用

在WEB开发中,我想你一定遇到经常写修改和删除的情况吧,这对刚步入这行的年轻朋友来说的确是一个不小的考验,如果是用JSF开发的话,好像有点繁索。下面我给大家介绍一个方法,可以很好的组件UIData组件,只要你是用JAVA进行开发的,就不会有问题!

 UIData:表示数据集合,每个数据项由DataModel(标准JSF UIComponent Model Bean之一)的一个实例封装。该组件通常用来渲染表格、列表和树。

实例:

新建一个实体bean

package org.abc.jsf.vo;

public class ArticleVO {
    
private int id;
    
private String title;
    
private String body;
    
public ArticleVO() {
     }
//getter setter

新建from 类,jsf都是调用这类的方法
package org.abc.jsf.from;

import java.util.ArrayList;
import java.util.List;

import javax.faces.component.UIData;
import javax.faces.event.ActionEvent;

import jsftest.dal.ArticleDAL;
import jsftest.vo.ArticleVO;
import java.util.Collection;

public class ArticleForm {
    
private int id=0;
    
private String title;
    
private String body;
    
private ArrayList articles;

    
public ArticleForm() {
         loadall();
     }
    
private ArticleDAL dal=new ArticleDAL();
    
public void save()
     {
         ArticleVO vo
=new ArticleVO();
         vo.setBody(
this.getBody());
         vo.setTitle(
this.getTitle());
        
if(this.getId()!=0)
         {
             vo.setId(
this.getId());
         }
         dal.saveArticle(vo);
     }
    
public void edit(ActionEvent event)
     {//取页面集合的值
        UIData table
= (UIData) event.getComponent().getParent().getParent();
        ArticleVO vo
=new ArticleVO();  //实例化ArticleVO
        vo
=(ArticleVO)table.getRowData();
      
this.setBody(vo.getBody());
      
this.setId(vo.getId());
      
this.setTitle(vo.getTitle());
     }

    
public void delete(ActionEvent event)
     {
        UIData table
= (UIData) event.getComponent().getParent().getParent();
         ArticleVO vo
=(ArticleVO)table.getRowData();
         dal.deleteArticle(vo);
         dal.LoadArticleAll();
     }
    
public void loadall()
     {
        
this.setArticles((ArrayList)dal.LoadArticleAll());
     }

    
public String getBody() {
        
return body;
     }

    
public int getId() {
        
return id;
     }

    
public String getTitle() {
        
return title;
     }

    
public Collection getArticles() {
        
//this.loadall();
        if(articles==null)
         {
             articles
=new ArrayList();
         }
        
return articles;
     }

    
public void setBody(String body) {
        
this.body = body;
     }

    
public void setId(int id) {
        
this.id = id;
     }

    
public void setTitle(String title) {
        
this.title = title;
     }

    
public void setArticles(ArrayList articles) {
        
this.articles = articles;
     }
}

前台页面:

<%@ page contentType="text/html; charset=GBK" %>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>
jsp1
</title>
</head>
<body bgcolor="#ffffff">
<h:form>

  
<div align="left">
     标题  
<h:inputText id="title" value="#{article.title}" /><br>
      内容
<h:inputTextarea id="currentMessage" value="#{article.body}" rows="10" cols="60"/>
         
<h:inputHidden value="#{article.id}"/>
  
</div>
       
<div align="center">
          
<h:commandButton value="save" action="#{article.save}"/>
       
</div>
      
<div align="center">
        
<h:commandButton value="clear" type="reset"/>
      
</div>
   *************************************************************

<h:dataTable id="table" rowClasses="list-row" value="#{article.articles}" var="articles">
              
<h:column>
                
<h:outputText styleClass="small" value="#{articles.id}"/>
              
</h:column>
              
<h:column>
                
<h:commandLink id="editLink" actionListener="#{article.edit}">//绑定监听
                  
<h:outputText value="edit"/>
                
</h:commandLink>
              
</h:column>
              
<h:column>
                
<h:commandLink id="deleteLink" actionListener="#{article.delete}">
                  
<h:outputText value="delete"/>
                
</h:commandLink>
              
</h:column>
              
<h:column>
                
<h:outputText value="#{articles.title}"/>
              
</h:column>
               
<h:column>
                
<h:outputText value="#{articles.body}"/>
              
</h:column>
            
</h:dataTable>
        
</h:form>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值