JSF晋级篇

接着上面“JSF第一步”,今天来做一个连接数据库,简单实现增删改查的小Demo。 
web.xml

<!-- web.xml配置大同小异都基本相同 -->
<? xml version="1.0" encoding="UTF-8" ?>
< web-app  xmlns ="http://java.sun.com/xml/ns/j2ee"  xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"  version ="2.4"  xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
  
< context-param >
    
< param-name > javax.faces.CONFIG_FILES </ param-name >
    
< param-value > /WEB-INF/faces-config.xml </ param-value >
  
</ context-param >
  
< servlet >
    
< servlet-name > Faces Servlet </ servlet-name >
    
< servlet-class > javax.faces.webapp.FacesServlet </ servlet-class >
    
< load-on-startup > 0 </ load-on-startup >
  
</ servlet >
  
< servlet-mapping >
    
< servlet-name > Faces Servlet </ servlet-name >
    
< url-pattern > *.jsf </ url-pattern >
  
</ servlet-mapping >
  
< jsp-config >
  
< taglib >
    
< taglib-uri > http://newland.com/custom_tag </ taglib-uri >
    
< taglib-location > /WEB-INF/custom_tag.tld </ taglib-location >
  
</ taglib >
  
</ jsp-config >
</ web-app >

faces-config.xml

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd" >
< faces-config >
  
< managed-bean >
    
< managed-bean-name > GhosyBean </ managed-bean-name >
    
< managed-bean-class > cm.saledemo.lab.GhosyBean </ managed-bean-class >
    
< managed-bean-scope > request </ managed-bean-scope >
  
</ managed-bean >
</ faces-config >

 

<% @ page language="java" pageEncoding="GBK" %>
<% @ taglib uri="http://java.sun.com/jsf/html" prefix="h"  %>
<% @ taglib uri="http://java.sun.com/jsf/core" prefix="f"  %>
<% @ taglib uri="http://newland.com/custom_tag" prefix="custom" %>

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< f:view >
  
< html >
    
< head >
      
< title > sale mobile telephone </ title >
      
< script  type ="text/javascript" >
          
function webInit(){
            
var sAshowType;      //类型;分页与不分页;
            var sAonePageNumber; //每一页的行数;
            var sAhaveCheckBox;  //是否有选择框;
            var sAhead;          //头信息;
            var sAlineWidths;    //行宽度;
            var sAhiddenLines;   //隐藏列(从0开始) (以#2做为列分隔符)
            var sApriKey;        //关键字列;
            tabFieldStr=String.fromCharCode(2);  //网格行的间格符;
            try{
               sAshowType
="PAGE";    //分页或是显示所有的数据;
               
                sAhead
="业务类别编码"+tabFieldStr+"业务类别名称"+tabFieldStr+"业务介绍"+tabFieldStr+"资费说明"+tabFieldStr+"使用帮助"+tabFieldStr;
                
//设定可以显示的列的列宽;这个列宽与 显示列;也就是sAHead是相对应的;
                sAlineWidths="10%"+tabFieldStr+"20%"+tabFieldStr+"20%"+tabFieldStr+"20%"+tabFieldStr+"30%"+tabFieldStr;
                
//隐藏列;
                sAhiddenLines="-1";
              sApriKey
="0";//关键字列
              sAonePageNumber="20";  //每一页的数目;
              sAhaveCheckBox="N";        //是否有CHECKBOX的选择
         
              devread.SetTableProperty(sAshowType,sAhead,sAonePageNumber,sAhiddenLines,sAlineWidths,sAhaveCheckBox,sApriKey);
              devread.BuildTable(
"",0,0);
              tableInfo();
            }
catch(ex)
            
{
              alert(
"webInit: "+ex.description);
            }

          }

          
function tableInfo(){
              rowtabStr
=String.fromCharCode(1);  //网格行的间格符;
              tabFieldStr=String.fromCharCode(2);  //网格列的间格符;
              try{
                  devread.DelAllSelectedData();
                  alllist
=document.getElementById("slist").value;
                  alllist
=alllist.replace("["""); 
                  alllist
=alllist.replace("]"""); 
                
var s=new RegExp("","ig");
                alllist
=alllist.replace(s,rowtabStr);
                s
=new RegExp("&","ig");
                alllist
=alllist.replace(s,tabFieldStr);
                  devread.AddData(alllist);            
              }

              
catch(ex){
                  alert(
"tableInfo: "+ex.description);
              }

          }
          
      
</ script >
    
</ head >
    
< body  onload ="webInit()" >
    
< h:inputHidden  id ="slist"  value ="#{GhosyBean.slist}" />
      
< h:form  id ="SaleQuery" >
        
< table >
            
< td >< h:outputText  value ="业务类别编码:" /></ td >
            
< td >
              
< h:inputText  id ="salecodeq"  value ="#{GhosyBean.scode}" />
            
</ td >
            
            
< td >< h:outputText  value ="业务类别名称:" /></ td >
            
< td >
              
< h:selectOneMenu  id ="selectclaseq"  value ="#{GhosyBean.sname}" >
                  
< f:selectItem  itemLabel ="请选择..."  itemValue ="0" />
                  
< f:selectItem  itemLabel ="彩信类"       itemValue ="彩信类" />
                  
< f:selectItem  itemLabel ="彩铃类"       itemValue ="彩铃类" />
                  
< f:selectItem  itemLabel ="天气预报类"   itemValue ="天气预报类" />
              
</ h:selectOneMenu >
            
</ td >
            
< td >< h:commandButton  value ="查询"  action ="query"  actionListener ="#{GhosyBean.serachEvent}"  onclick ="tableInfo()" /></ td >
            
< td >< h:commandButton  value ="更新"  action ="update"  actionListener ="#{GhosyBean.processUpdateEvent}"  onclick ="tableInfo()" /></ td >  
        
</ table >
    
</ h:form >
        
<!-- ocx控件来呈现数据 -->
       
< object
          
id ="gridStaff"
          classid
="clsid:8A663037-8430-4393-8280-647DC9087B50"
          name
= "devread"  
          codebase
="<%=request.getContextPath()%>/ocx/TableListX.ocx#version=1,0,0,5"
          width
=100%
          
height =210
          
align =middle
          
hspace =0
          
vspace =0  >
       
</ object >
    
< h:form  id ="SalePass" >
        
< table >
            
< tr >
                
< td >< h:outputText  value ="业务类别编码:" /></ td >
                
< td >
                  
< h:inputText  id ="salecode"  value ="#{GhosyBean.code}" />
                  
< h:outputText   id ="d1"  value ="*必填"
                     style
="font-family: Arial, sans-serif; font-size: 18;color: red;" />
                
</ td >
            
</ tr >
            
< tr >
                
< td >< h:outputText  value ="业务类别名称:" /></ td >
                
< td >
                  
< h:selectOneMenu  id ="selectclase"  value ="#{GhosyBean.name}" >
                      
< f:selectItem  itemLabel ="请选择..."  itemValue ="0" />
                      
< f:selectItem  itemLabel ="彩信类"       itemValue ="彩信类" />
                      
< f:selectItem  itemLabel ="彩铃类"       itemValue ="彩铃类" />
                      
< f:selectItem  itemLabel ="天气预报类"   itemValue ="天气预报类" />
                  
</ h:selectOneMenu >
                  
< h:outputText   id ="d2"  value ="*必填"
                     style
="font-family: Arial, sans-serif; font-size: 18;color: red;" />
                
</ td >
            
</ tr >
            
< tr >
                
< td >< h:outputText  value ="业务介绍:" /></ td >
                
< td >
                  
< h:inputText  id ="business_comments"  value ="#{GhosyBean.business_comments}" />
                
</ td >
            
</ tr >
            
< tr >
                
< td >< h:outputText  value ="资费说明:" /></ td >
                
< td >
                  
< h:inputText  id ="fee_comments"  value ="#{GhosyBean.fee_comments}" />
                
</ td >
            
</ tr >
            
< tr >
                
< td >< h:outputText  value ="使用帮助:" /></ td >
                
< td >
                  
< h:inputText  id ="use_help"  value ="#{GhosyBean.use_help}" />
                
</ td >
            
</ tr >
            
< tr >
                
< td  align ="center"  colspan ="3" >
                  
< h:commandButton  value ="添加"  action ="add"  actionListener ="#{GhosyBean.addEvent}" />
                  
< h:commandButton  value ="删除"  action ="del"  actionListener ="#{GhosyBean.delEvent}" />
                  
< h:commandButton  value ="修改"  action ="edit"  actionListener ="#{GhosyBean.editEvent}" />
                
</ td >
            
</ tr >
        
</ table >
    
</ h:form >        
    
</ body >
  
</ html >
</ f:view >

 

package  cm.saledemo.lab;

import  java.util.ArrayList;
import  java.util.List;
import  javax.faces.event.ActionEvent;
import  base.db.DBMap;
import  base.db.DBParam;
import  base.db.DBSession;
import  base.db.DBSql;
import  base.logger.SimpleLogger;
import  base.util.Result;


public   class  GhosyBean  implements  Cloneable,java.io.Serializable,base.db.ICopy {

  
/**
  *业务类别编码
  
*/

  
public java.lang.String code;

  
/**
  *业务类别名称
  
*/

  
public java.lang.String name;

  
/**
  *业务介绍
  
*/

  
public java.lang.String business_comments;

  
/**
  *资费说明
  
*/

  
public java.lang.String fee_comments;

  
/**
  *使用帮助
  
*/

  
public java.lang.String use_help;

  
/**
  *图片附件id,关联chnl_contract_doc.id,根据这个值查出图片url
  
*/

  
public int img_id;

  
/**
  *销售指导
  
*/

  
public java.lang.String sales_direction;

  
/**
   *日志文件
   
*/

  
private static SimpleLogger myLogger = SimpleLogger.getInitLogger(CMSaleBizTypeCfgBean.class);

  
/**
   *业务类别编码
   
*/

   
public java.lang.String scode;

   
/**
   *业务类别名称
   
*/

   
public java.lang.String sname;
  
  
public java.lang.String getCode(){return code;}
  
public void setCode(java.lang.String code){this.code=code;}

  
public java.lang.String getName(){return name;}
  
public void setName(java.lang.String name){this.name=name;}

  
public java.lang.String getBusiness_comments(){return business_comments;}
  
public void setBusiness_comments(java.lang.String business_comments){this.business_comments=business_comments;}

  
public java.lang.String getFee_comments(){return fee_comments;}
  
public void setFee_comments(java.lang.String fee_comments){this.fee_comments=fee_comments;}

  
public java.lang.String getUse_help(){return use_help;}
  
public void setUse_help(java.lang.String use_help){this.use_help=use_help;}

  
public java.lang.String getImg_id(){return Integer.toString(img_id);}
  
public void setImg_id(java.lang.String img_id){try{this.img_id=Integer.parseInt(img_id);}catch(Exception ex){}}

  
public java.lang.String getSales_direction(){return sales_direction;}
  
public void setSales_direction(java.lang.String sales_direction){this.sales_direction=sales_direction;}

  
public java.lang.String getScode() {return scode;}
  
public void setScode(java.lang.String scode) {this.scode = scode;}
  
  
public java.lang.String getSname() {return sname;}
  
public void setSname(java.lang.String sname) {this.sname = sname;}
  
  
private String[][] aalist = null;         //返回二维输出
  private List slist = new ArrayList();     //返回sList输出
  private int page;                            //
  private int allpage;
  
  
public String[][] getAalist() {return aalist;}
  
public void setAalist(String[][] aalist) {this.aalist = aalist;}
  
  
public List getSlist() {return slist;}
  
public void setSlist(List slist) {this.slist = slist;} 

  
public int getAllpage() {return allpage;}
  
public void setAllpage(int allpage) {this.allpage = allpage;}
  
  
public int getPage() {return page;}
  
public void setPage(int page) {this.page = page;}
  
  
/**
   * 数据初始化
   * 
*/

  
public GhosyBean(){
      
//inputdb();
  }

 
  
public  Object  CopySelf(){
    
return new CMSaleBizTypeCfgBean();
  }

  
  
/**
   * 查询
   * 
*/

  
public void serachEvent(ActionEvent event){
    myLogger.debug(
"查询---->业务类别编码:"+scode+"-->业务类别名称:"+sname+"----");

    String sql
=null;
    
try {
        sql
="select * from sales_biz_type_cfg where 1=1 ";
        
if(scode.trim().length()>0){
            sql
=sql+" and code="+scode;
        }

        
if(!(sname.equals("0"))){
            sql
=sql+" and name='"+sname+"'";
        }

        sql
=sql+" order by code asc";
        DBSql dbsql
=new DBSql();
        Result result
=dbsql.executeSql(sql);
        
if(result.result_code==0){
          aalist
=result.aaRecord;
            
for (int i = 0; i < aalist.length; i++{
                slist.add(aalist[i][
0]+"&"+aalist[i][1]+"&"+aalist[i][2]+"&"+aalist[i][3]+"&"+aalist[i][4]);
            }

        }

        allpage
=slist.size()/20;
    }
 catch (Exception e) {
        myLogger.debug(
"查询失败!="+sql);
    }

  }

  
  
/**
   * 更新
   * 
*/

  
public void processUpdateEvent(ActionEvent event){
      inputdb();
  }

  
  
/**
   * 添加
   * 
*/

  
public void addEvent(ActionEvent event){
      myLogger.debug(
"添加");
      DBSession session
=DBSession.openSession();   
        
try {
            session
=DBSession.openSession();   
            CMSaleBizTypeCfgBean bean
=new CMSaleBizTypeCfgBean();
            bean.code
=this.code;
            bean.name
=this.name;
            bean.business_comments
=this.business_comments;
            bean.fee_comments
=this.fee_comments;
            bean.use_help
=this.use_help;
            session.insert(bean,
"sales_biz_type_cfg");
            Result result
=session.commitSession();
            
if(result.result_code==0){
                aalist
=result.aaRecord;
                inputdb();
            }

            
else{
                System.out.println(
"添加失败!");
                myLogger.debug(
"添加失败!");
            }

        }
 catch (Exception e) {
            session.clearSession() ;
            System.out.println(
"添加出错!");
            myLogger.debug(
"添加出错!");
        }

  }

  
  
/**
   * 修改
   * 
*/

  
public void editEvent(ActionEvent event){
      myLogger.debug(
"修改");
      DBSession session
=DBSession.openSession();   
      
try {
            session
=DBSession.openSession();   
            CMSaleBizTypeCfgBean bean
=new CMSaleBizTypeCfgBean();
            bean.code
=this.code;
            bean.name
=this.name;
            bean.business_comments
=this.business_comments;
            bean.fee_comments
=this.fee_comments;
            bean.use_help
=this.use_help;
             session.update(bean,"sales_biz_type_cfg","where code='"+this.code+"'");
            Result result
=session.commitSession();
            
if(result.result_code==0){
                aalist
=result.aaRecord;
                inputdb();
            }

            
else{
                session.clearSession() ;
                System.out.println(
"修改失败!");
                myLogger.debug(
"修改失败!");
            }

        }
 catch (Exception e) {
            session.clearSession() ;
            System.out.println(
"修改出错!");
            myLogger.debug(
"修改出错!");
        }
 
  }

  
  
/**
   * 删除
   * 
*/

  
public void delEvent(ActionEvent event){
      myLogger.debug(
"删除");
      DBSession session
=DBSession.openSession();   
        
try {
            session
=DBSession.openSession();   
            session.delete(
"delete from sales_biz_type_cfg where code="+code);
            Result result
=session.commitSession();
            if(result.result_code==0){
                aalist
=result.aaRecord;
                inputdb();
            }

            
else{
                session.clearSession() ;
                System.out.println(
"删除失败!");
                myLogger.debug(
"删除失败!");
            }

        }
 catch (Exception e) {
            session.clearSession() ;
            System.out.println(
"删除出错!");
            myLogger.debug(
"删除出错!");
        }
 
  }

  
  
/**
   * 刷新
   * 
*/

  
public void inputdb(){
    myLogger.debug(
"更新");
    String sql
=null;
    
try {
        sql
="select * from sales_biz_type_cfg order by code asc";
        DBSql dbsql
=new DBSql();
        Result result
=dbsql.executeSql(sql);
        
if(result.result_code==0){
          aalist
=result.aaRecord;
          
for (int i = 0; i < aalist.length; i++{
            slist.add(aalist[i][
0]+"&"+aalist[i][1]+"&"+aalist[i][2]+"&"+aalist[i][3]+"&"+aalist[i][4]);
          }

        }
 
        allpage
=slist.size()/20;
    }
 catch (Exception e) {
        System.out.println(
"更新失败!"+sql);
        myLogger.debug(
"更新失败!="+sql);
    }

  }


}


你可能感兴趣的:(JSF晋级篇)