`
kong0itey
  • 浏览: 299061 次
社区版块
存档分类
最新评论

struts+spring+hibernate的web应用<四> Web层代码编写(1)

    博客分类:
  • java
 
阅读更多

前面的文章:

struts+spring+hibernate web 应用 < > 架构搭建

struts+spring+hibernate web 应用 < > Dao 层代码编写

struts+spring+hibernate web 应用 < > Service 层代码编写

 

Web 层代码量比较大,涉及的地方也比较多,考虑到文章过于庞大,所以分两篇写。
我们还是先从主要的
action 开始吧。

com.game.products.web.actions 包中新建 ProductsAction ,这是一个 DispatchAction ,代码如下:

 

package  com.game.products.web.actions;

import  java.util.List;

import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;

import  org.acegisecurity.AccessDeniedException;
import  org.apache.struts.action.ActionForm;
import  org.apache.struts.action.ActionForward;
import  org.apache.struts.action.ActionMapping;
import  org.apache.struts.actions.DispatchAction;

import  com.game.commons.Pager;
import  com.game.commons.PagerService;
import  com.game.products.model.Products;
import  com.game.products.services.iface.ProductsService;
import  com.game.products.web.forms.ProductsForm;


public   class  ProductsAction  extends  DispatchAction  {
    
    
private  ProductsService productsService;
    
private  PagerService pagerService;
    
    
/**  
     * 显示所有信息
     
*/

    
public  ActionForward doGetProducts(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest req,
            HttpServletResponse res)
{
        String flag
= req.getParameter( " flag " );
        
        
int  totalRows = productsService.getRows();
        String currentPage
= req.getParameter( " currentPage " );
        String pagerMethod
= req.getParameter( " pagerMethod " );
        
        Pager pager
= pagerService.getPager(currentPage, pagerMethod, totalRows);
        
        List productsList
= productsService.getProducts(pager.getPageSize(), pager.getStartRow());
        
        req.setAttribute(
" productsList " , productsList);
        req.setAttribute(
" PAGER " , pager);
        req.setAttribute(
" flag " , flag);
        req.setAttribute(
" totalRows " , String.valueOf(totalRows));
        
        
return  mapping.findForward( " all " );
    }

    
    
/**  
     * 显示一条信息
     
*/

    
public  ActionForward doGetProduct(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest req,
            HttpServletResponse res)
{
        String flag
= req.getParameter( " flag " );
        String gameId
= req.getParameter( " gameId " );
        String fieldname
= "" ;
        String value
= "" ;
        
if (flag.equals( " 2 " )) {
            fieldname
= (String)req.getParameter( " fieldname " );
            value
= (String)req.getParameter( " value " );
            req.setAttribute(
" fieldname " , fieldname);
            req.setAttribute(
" value " , value);
        }

        
        Products pd
= productsService.getProduct(gameId);
        req.setAttribute(
" pd " , pd);
        req.setAttribute(
" flag " , flag);
        
return  mapping.findForward( " one " );
    }

    
    
/**  
     * 添加信息页面
     
*/

    
public  ActionForward doAddProductPage(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest req,
            HttpServletResponse res)
{
        String flag
= req.getParameter( " flag " );
        req.setAttribute(
" flag " , flag);
        String fieldname
= "" ;
        String value
= "" ;
        
if (flag.equals( " 2 " )) {
            fieldname
= (String)req.getParameter( " fieldname " );
            value
= (String)req.getParameter( " value " );
            req.setAttribute(
" fieldname " , fieldname);
            req.setAttribute(
" value " , value);
        }

        
        String maxid
= productsService.getMaxID();
        req.setAttribute(
" maxid " , maxid);
        
return  mapping.findForward( " add " );
    }

    
    
/**  
     * 添加信息
     
*/

    
public  ActionForward doAddProduct(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest req,
            HttpServletResponse res)
{
        ProductsForm pf
= (ProductsForm)form;
        String flag
= pf.getFlag();
        req.setAttribute(
" flag " , flag);
        String fieldname
= "" ;
        String value
= "" ;
        
if (flag.equals( " 2 " )) {
            fieldname
= pf.getFieldname();
            value
= pf.getValue();
            req.setAttribute(
" fieldname " , fieldname);
            req.setAttribute(
" value " , value);
        }

        
        Products pd
= new  Products();
        pd.setGameCapacity(pf.getGameCapacity());
        pd.setGameId(pf.getGameId());
        pd.setGameMedia(pf.getGameMedia());
        pd.setGameNameCn(pf.getGameNameCn());
        pd.setGameNameEn(pf.getGameNameEn());
        pd.setGameVersion(pf.getGameVersion());
        pd.setGameCopyright(pf.getGameCopyright());
        pd.setGameContent(pf.getGameContent());
        
if (pf.getGamePrice().equals( "" )) {
            pd.setGamePrice(
null );
        }
else {
            pd.setGamePrice(pf.getGamePrice());
        }

        
        
int  sign = 1 ;
        
try {
            productsService.addProduct(pd);
            sign
= 1 ;
        }
catch (Exception e) {
            sign
= 2 ;
        }

        
        
if (sign == 1 ) {
            
return  mapping.findForward( " success " );
        }
else {
            
return  mapping.findForward( " failure " );
        }

    }

    
    
/**  
     * 修改信息
     
*/

    
public  ActionForward doUpdateProduct(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest req,
            HttpServletResponse res)
{
        ProductsForm pf
= (ProductsForm)form;
        String gameId
= pf.getGameId();
        
        String flag
= pf.getFlag();
        req.setAttribute(
" flag " , flag);
        String fieldname
= "" ;
        String value
= "" ;
        
if (flag.equals( " 2 " )) {
            fieldname
= pf.getFieldname();
            value
= pf.getValue();
            req.setAttribute(
" fieldname " , fieldname);
            req.setAttribute(
" value " , value);
        }

        
        Products pd
= productsService.getProduct(gameId);
        pd.setGameCapacity(pf.getGameCapacity());
        pd.setGameId(pf.getGameId());
        pd.setGameMedia(pf.getGameMedia());
        pd.setGameNameCn(pf.getGameNameCn());
        pd.setGameNameEn(pf.getGameNameEn());
        pd.setGameVersion(pf.getGameVersion());
        pd.setGameCopyright(pf.getGameCopyright());
        pd.setGameContent(pf.getGameContent());
        
if (pf.getGamePrice().equals( "" )) {
            pd.setGamePrice(
null );
        }
else {
            pd.setGamePrice(pf.getGamePrice());
        }

        
        
int  sign = 1 ;
        
try {
            productsService.updateProductd(pd);
            sign
= 1 ;
        }
catch (Exception e) {
            sign
= 2 ;
        }

        
        
if (sign == 1 ) {
            
return  mapping.findForward( " success " );
        }
else {
            
return  mapping.findForward( " failure " );
        }

    }

    
    
/**  
     * 删除信息
     
*/

    
public  ActionForward doDeleteProduct(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest req,
            HttpServletResponse res)
{
        String flag
= req.getParameter( " flag " );
        req.setAttribute(
" flag " , flag);
        String fieldname
= "" ;
        String value
= "" ;
        
if (flag.equals( " 2 " )) {
            fieldname
= (String)req.getParameter( " fieldname " );
            value
= (String)req.getParameter( " value " );
            req.setAttribute(
" fieldname " , fieldname);
            req.setAttribute(
" value " , value);
        }

        
        String gameId
= req.getParameter( " gameId " );
        
        Products pd
= productsService.getProduct(gameId);
        
int  sign = 1 ;
        
try {
            productsService.deleteProduct(pd);
            sign
= 1 ;
        }
catch (Exception e) {
            sign
= 2 ;
        }

        
        
if (sign == 1 ) {
            
return  mapping.findForward( " success " );
        }
else {
            
return  mapping.findForward( " failure " );
        }

    }

    
    
/**  
     * 返回信息
     
*/

    
public  ActionForward doReturnProduct(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest req,
            HttpServletResponse res)
{
        String flag
= req.getParameter( " flag " );
        req.setAttribute(
" flag " , flag);
        String fieldname
= "" ;
        String value
= "" ;
        
if (flag.equals( " 1 " )) {
            
int  totalRows = productsService.getRows();
            String currentPage
= req.getParameter( " currentPage " );
            String pagerMethod
= req.getParameter( " pagerMethod " );
            
            Pager pager
= pagerService.getPager(currentPage, pagerMethod, totalRows);
            
            List productsList
= productsService.getProducts(pager.getPageSize(), pager.getStartRow());
            
            req.setAttribute(
" productsList " , productsList);
            req.setAttribute(
" PAGER " , pager);
            req.setAttribute(
" flag " , flag);
            req.setAttribute(
" totalRows " , String.valueOf(totalRows));
        }
else   if (flag.equals( " 2 " )) {
            fieldname
= (String)req.getParameter( " fieldname " );
            value
= (String)req.getParameter( " value " );
            
int  totalRows = productsService.getRows(fieldname,value);
            String currentPage
= req.getParameter( " currentPage " );
            String pagerMethod
= req.getParameter( " pagerMethod " );
            
            Pager pager
= pagerService.getPager(currentPage, pagerMethod, totalRows);

            req.setAttribute(
" fieldname " , fieldname);
            req.setAttribute(
" value " , value);
            
            List productsList
= productsService.queryProducts(fieldname, value,pager.getPageSize(), pager.getStartRow());
            
            req.setAttribute(
" productsList " , productsList);
            req.setAttribute(
" PAGER " , pager);
            req.setAttribute(
" totalRows " , String.valueOf(totalRows));
        }

        
        
return  mapping.findForward( " all " );
        
    }

    
    
/**  
     * 查询信息
     
*/

    
public  ActionForward doQueryProduct(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest req,
            HttpServletResponse res)
{
        String flag
= req.getParameter( " flag " );
        req.setAttribute(
" flag " , flag);
        String fieldname
= "" ;
        String value
= "" ;
        fieldname
= (String)req.getParameter( " fieldname " );
        value
= (String)req.getParameter( " value " );
        
        
int  totalRows = productsService.getRows(fieldname,value);
        String currentPage
= req.getParameter( " currentPage " );
        String pagerMethod
= req.getParameter( " pagerMethod " );
        
        Pager pager
= pagerService.getPager(currentPage, pagerMethod, totalRows);

        req.setAttribute(
" fieldname " , fieldname);
        req.setAttribute(
" value " , value);
        
        List productsList
= productsService.queryProducts(fieldname, value,pager.getPageSize(), pager.getStartRow());
        
        req.setAttribute(
" productsList " , productsList);
        req.setAttribute(
" PAGER " , pager);
        req.setAttribute(
" totalRows " , String.valueOf(totalRows));
        
        
return  mapping.findForward( " all " );
        
    }


    
public  ProductsService getProductsService()  {
        
return  productsService;
    }


    
public   void  setProductsService(ProductsService productsService)  {
        
this .productsService  =  productsService;
    }


    
public  PagerService getPagerService()  {
        
return  pagerService;
    }


    
public   void  setPagerService(PagerService pagerService)  {
        
this .pagerService  =  pagerService;
    }

    
}

 

com.game.products.web.forms 包中新建 ProductsForm ,他继承了 ValidatorForm 。代码如下:

 

package  com.game.products.web.forms;

import  javax.servlet.http.HttpServletRequest;

import  org.apache.struts.action.ActionMapping;
import  org.apache.struts.validator.ValidatorForm;

public   class  ProductsForm  extends  ValidatorForm  {
    
//     Fields 
     private  String gameId; // 编号
     private  String gameNameCn; // 中文名称
     private  String gameNameEn; // 英文名称
     private  String gameCapacity; // 碟数
     private  String gameVersion; // 版本
     private  String gameMedia; // 介质
     private  String gameCopyright; // 版权
     private  String gamePrice; // 价格
     private  String gameContent; // 攻略
    
    
private  String flag;
    
private  String fieldname;
    
private  String value;
    
    
//     Constructors
     public  ProductsForm() {
        gameId
= null ;
        gameNameCn
= null ;
        gameNameEn
= null ;
        gameCapacity
= null ;
        gameVersion
= null ;
        gameMedia
= null ;
        gameCopyright
= null ;
        gamePrice
= null ;
        gameContent
= null ;
        
        flag
= null ;
        fieldname
= null ;
        value
= null ;
    }

    
    
//  reset
     public   void  reset(ActionMapping mapping, HttpServletRequest request)  {
        gameId
= null ;
        gameNameCn
= null ;
        gameNameEn
= null ;
        gameCapacity
= null ;
        gameVersion
= null ;
        gameMedia
= null ;
        gameCopyright
= null ;
        gamePrice
= null ;
        gameContent
= null ;
        
        flag
= null ;
        fieldname
= null ;
        value
= null ;
    }

    
    
//     Property accessors
     public  String getGameCapacity()  {
        
return  gameCapacity;
    }


    
public   void  setGameCapacity(String gameCapacity)  {
        
this .gameCapacity  =  gameCapacity;
    }


    
public  String getGameId()  {
        
return  gameId;
    }


    
public   void  setGameId(String gameId)  {
        
this .gameId  =  gameId;
    }


    
public  String getGameNameCn()  {
        
return  gameNameCn;
    }


    
public   void  setGameNameCn(String gameNameCn)  {
        
this .gameNameCn  =  gameNameCn;
    }


    
public  String getGameNameEn()  {
        
return  gameNameEn;
    }


    
public   void  setGameNameEn(String gameNameEn)  {
        
this .gameNameEn  =  gameNameEn;
    }


    
public  String getGameVersion()  {
        
return  gameVersion;
    }


    
public   void  setGameVersion(String gameVersion)  {
        
this .gameVersion  =  gameVersion;
    }


    
public  String getGameMedia()  {
        
return  gameMedia;
    }


    
public   void  setGameMedia(String gameMedia)  {
        
this .gameMedia  =  gameMedia;
    }


    
public  String getFieldname()  {
        
return  fieldname;
    }


    
public   void  setFieldname(String fieldname)  {
        
this .fieldname  =  fieldname;
    }


    
public  String getFlag()  {
        
return  flag;
    }


    
public   void  setFlag(String flag)  {
        
this .flag  =  flag;
    }


    
public  String getValue()  {
        
return  value;
    }


    
public   void  setValue(String value)  {
        
this .value  =  value;
    }


    
public  String getGameCopyright()  {
        
return  gameCopyright;
    }


    
public   void  setGameCopyright(String gameCopyright)  {
        
this .gameCopyright  =  gameCopyright;
    }


    
public  String getGameContent()  {
        
return  gameContent;
    }


    
public   void  setGameContent(String gameContent)  {
        
this .gameContent  =  gameContent;
    }


    
public  String getGamePrice()  {
        
return  gamePrice;
    }


    
public   void  setGamePrice(String gamePrice)  {
        
this .gamePrice  =  gamePrice;
    }


}

 

 

接着编写配置文件。

struts-config 包中新建 struts-config.xml 。代码如下:

<? xml version="1.0" encoding="ISO-8859-1" ?>
<! DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"
>

< struts-config >
    
< form-beans >
        
< form-bean  name ="productsForm"  type ="com.game.products.web.forms.ProductsForm"   />
    
</ form-beans >
    
    
< global-forwards >
        
< forward  name ="success"  path ="/products/product_success.jsp"   />
        
< forward  name ="failure"  path ="/products/product_failure.jsp"   />
    
</ global-forwards >
    
    
< action-mappings >
        
< action  path ="/getProducts"  type ="org.springframework.web.struts.DelegatingActionProxy"  parameter ="method"  scope ="request"  validate ="false" >
            
< forward  name ="all"  path ="/products/products.jsp"   />
        
</ action >
        
< action  path ="/getProduct"  type ="org.springframework.web.struts.DelegatingActionProxy"  parameter ="method"  scope ="request"  validate ="false" >
            
< forward  name ="one"  path ="/products/product.jsp"   />
        
</ action >
        
< action  path ="/deleteProduct"  type ="org.springframework.web.struts.DelegatingActionProxy"  parameter ="method"  scope ="request"  validate ="false" >             
        
</ action >
        
< action  path ="/addProductPage"  type ="org.springframework.web.struts.DelegatingActionProxy"  parameter ="method"  scope ="request"  validate ="false" >
            
< forward  name ="add"  path ="/products/addproduct.jsp"   />
        
</ action >
        
< action  path ="/addProduct"  name ="productsForm"  type ="org.springframework.web.struts.DelegatingActionProxy"  parameter ="method"  scope ="request"  validate ="false"  input ="/product_failure.jsp" >
        
</ action >
        
< action  path ="/updateProduct"  name ="productsForm"  type ="org.springframework.web.struts.DelegatingActionProxy"  parameter ="method"  scope ="request"  validate ="false"  input ="/product_failure.jsp" >
        
</ action >
        
        
< action  path ="/returnProduct"  type ="org.springframework.web.struts.DelegatingActionProxy"  parameter ="method"  scope ="request"  validate ="false" >
            
< forward  name ="all"  path ="/products/products.jsp"   />
        
</ action >
        
< action  path ="/queryProducts"  type ="org.springframework.web.struts.DelegatingActionProxy"  parameter ="method"  scope ="request"  validate ="false" >
            
< forward  name ="all"  path ="/products/products.jsp"   />
        
</ action >
    
</ action-mappings >
    
    
< message-resources  parameter ="com.game.resources.ApplicationResourcesProducts"   />
    
    
< plug-in  className ="org.apache.struts.validator.ValidatorPlugIn" >
        
< set-property  property ="pathnames"
            value
="/WEB-INF/struts-validator/validator-rules.xml,/WEB-INF/struts-validator/validation.xml" />
    
</ plug-in >     
    
</ struts-config >

 

需要注意的是,这里的 action 交由 spring DelegatingActionProxy 管理了。

 

打开 applicationContext.xml ,接着添加如下代码:

<!--  View  -->
    
< bean  name ="/getProducts"  class ="com.game.products.web.actions.ProductsAction"  singleton ="false" >
        
< property  name ="productsService" >
            
< ref  bean ="productsService" />
        
</ property >
        
< property  name ="pagerService" >
            
< ref  bean ="pagerService" />
        
</ property >
    
</ bean >
    
< bean  name ="/getProduct"  class ="com.game.products.web.actions.ProductsAction"  singleton ="false" >
        
< property  name ="productsService" >
            
< ref  bean ="productsService" />
        
</ property >
    
</ bean >
    
< bean  name ="/deleteProduct"  class ="com.game.products.web.actions.ProductsAction"  singleton ="false" >
        
< property  name ="productsService" >
            
< ref  bean ="productsService" />
        
</ property >
    
</ bean >
    
< bean  name ="/addProductPage"  class ="com.game.products.web.actions.ProductsAction"  singleton ="false" >
        
< property  name ="productsService" >
            
< ref  bean ="productsService" />
        
</ property >
    
</ bean >
    
< bean  name ="/addProduct"  class ="com.game.products.web.actions.ProductsAction"  singleton ="false" >
        
< property  name ="productsService" >
            
< ref  bean ="productsService" />
        
</ property >
    
</ bean >
    
< bean  name ="/updateProduct"  class ="com.game.products.web.actions.ProductsAction"  singleton ="false" >
        
< property  name ="productsService" >
            
< ref  bean ="productsService" />
        
</ property >
    
</ bean >
    
< bean  name ="/returnProduct"  class ="com.game.products.web.actions.ProductsAction"  singleton ="false" >
        
< property  name ="productsService" >
            
< ref  bean ="productsService" />
        
</ property >
        
< property  name ="pagerService" >
            
< ref  bean ="pagerService" />
        
</ property >
    
</ bean >
    
< bean  name ="/queryProducts"  class ="com.game.products.web.actions.ProductsAction"  singleton ="false" >
        
< property  name ="productsService" >
            
< ref  bean ="productsService" />
        
</ property >
        
< property  name ="pagerService" >
            
< ref  bean ="pagerService" />
        
</ property >
    
</ bean >

 

接着编写 web.xml ,代码如下:

<? xml version="1.0" encoding="GB2312" ?>
<! DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd"
>

< web-app >
    
< display-name > 游戏软件管理系统 </ display-name >
    
< context-param >
        
< param-name > log4jConfigLocation </ param-name >
        
< param-value > /WEB-INF/classes/log4j.properties </ param-value >
    
</ context-param >
    
< context-param >
        
< param-name > contextConfigLocation </ param-name >
        
< param-value > /WEB-INF/spring-context/applicationContext.xml </ param-value >
      
</ context-param >
    
    
< filter >
        
< filter-name > Set Character Encoding </ filter-name >
        
< filter-class > com.game.commons.SetCharacterEncodingFilter </ filter-class >
        
< init-param >
            
< param-name > encoding </ param-name >
            
< param-value > GB2312 </ param-value >
        
</ init-param >
    
</ filter >

    
< filter-mapping >
        
< filter-name > Set Character Encoding </ filter-name >
        
< url-pattern > /* </ url-pattern >
    
</ filter-mapping >
    
    
<!--
          - Loads the root application context of this web app at startup.
          - The application context is then available via
          - WebApplicationContextUtils.getWebApplicationContext(servletContext).
      
-->
      
< listener >
        
< listener-class > org.springframework.web.context.ContextLoaderListener </ listener-class >
      
</ listener >

      
< listener >
        
< listener-class > org.springframework.web.util.Log4jConfigListener </ listener-class >
      
</ listener >
    
    
<!--  Action Servlet Configuration  -->
    
< servlet >
        
< servlet-name > action </ servlet-name >
        
< servlet-class > org.apache.struts.action.ActionServlet </ servlet-class >
        
<!--  缺省  -->
            
< init-param >
              
< param-name > config </ param-name >
              
< param-value > /WEB-INF/struts-config/struts-config.xml </ param-value >
            
</ init-param >
            
< init-param >
                
< param-name > debug </ param-name >
                
< param-value > 3 </ param-value >
            
</ init-param >
            
< init-param >
                
< param-name > detail </ param-name >
                
< param-value > 3 </ param-value >
            
</ init-param >
            
< init-param >
                
< param-name > nocache </ param-name >
                
< param-value > yes </ param-value >
            
</ init-param >
            
< load-on-startup > 2 </ load-on-startup >
    
</ servlet >
    
    
<!--  Action Servlet Mapping  -->
    
< servlet-mapping >
        
< servlet-name > action </ servlet-name >
        
< url-pattern > *.do </ url-pattern >
    
</ servlet-mapping >
 
    
<!--  The Welcome File List  -->
    
< welcome-file-list >
        
< welcome-file > products/index.jsp </ welcome-file >
    
</ welcome-file-list >

    
<!--  Struts Tag Library Descriptors  -->
    
< taglib >
        
< taglib-uri > struts-bean </ taglib-uri >
        
< taglib-location > /WEB-INF/tld/struts-bean.tld </ taglib-location >
    
</ taglib >

    
< taglib >
        
< taglib-uri > struts-html </ taglib-uri >
        
< taglib-location > /WEB-INF/tld/struts-html.tld </ taglib-location >
    
</ taglib >

    
< taglib >
        
< taglib-uri > struts-logic </ taglib-uri >
        
< taglib-location > /WEB-INF/tld/struts-logic.tld </ taglib-location >
    
</ taglib >

    
< taglib >
        
< taglib-uri > struts-nested </ taglib-uri >
        
< taglib-location > /WEB-INF/tld/struts-nested.tld </ taglib-location >
    
</ taglib >
</ web-app >

 

 

大家可能注意到了这里有个 Set Character Encoding 过滤器。我们需要在 com.game.commons 包中新建 SetCharacterEncodingFilter 类来过滤编码,类的代码如下:

package  com.game.commons;

import  java.io.IOException;

import  javax.servlet.Filter;
import  javax.servlet.FilterChain;
import  javax.servlet.FilterConfig;
import  javax.servlet.ServletException;
import  javax.servlet.ServletRequest;
import  javax.servlet.ServletResponse;

public   class  SetCharacterEncodingFilter  implements  Filter  {
protected  String encoding  =   null ;
protected  FilterConfig filterConfig  =   null ;
protected   boolean  ignore  =   true ;

public   void  init(FilterConfig filterConfig)  throws  ServletException  {
this .filterConfig = filterConfig;
this .encoding = filterConfig.getInitParameter( " encoding " );
String value
= filterConfig.getInitParameter( " ignore " );
if (value == null )
this .ignore = true ;
else   if (value.equalsIgnoreCase( " true " ))
this .ignore = true ;
else
this .ignore = false ;
}


public   void  doFilter(ServletRequest request, ServletResponse response, FilterChain chain)  throws  IOException, ServletException  {
//  TODO 自动生成方法存根
if  (ignore  ||  (request.getCharacterEncoding()  ==   null ))  {
String encoding 
=  selectEncoding(request);
if  (encoding  !=   null )
request.setCharacterEncoding(encoding);
}

chain.doFilter(request, response);
}


public   void  destroy()  {
//  TODO 自动生成方法存根
this .encoding  =   null ;
this .filterConfig  =   null ;
}


protected  String selectEncoding(ServletRequest request)  {
return  ( this .encoding);
}

}

 

 

为了项目的测试运行,我们还需要配置 log4j.properties ,这个文件放在 src 根目录下。代码如下:

log4j.rootLogger=info,console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
log4j.logger.com.wehave=DEBUG
# log4j.logger.org.springframework=DEBUG
# SqlMap logging configuration
# log4j.logger.com.ibatis=DEBUG
# log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
# log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
# log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
# log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
#log4j.logger.java.sql.ResultSet=DEBUG
#log4j.logger.javax.sql=DEBUG

 

这是一个简单的 log4j 配置方法,只是在后台打印出需要的数据。如果还有别的需求,可以参考这个文档:如何使用 Log4j

 

为了达到页面验证的目的,我们还需要使用到 struts 的验证框架。

struts-validator 中添加 validation.xml 。在这配置验证规则:

 

<! DOCTYPE form-validation PUBLIC
    "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
    "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"
>
    
< form-validation >
    
< formset >
        
< form  name ="productsForm" >
            
< field  property ="gameNameCn"  depends ="required" >
                
< arg0  key ="errors.gameNameCn" />
            
</ field >     
            
< field  property ="gameNameEn"  depends ="required" >
                
< arg0  key ="errors.gameNameEn" />
            
</ field >
            
< field  property ="gameCapacity"  depends ="integer" >
                
< arg0  key ="errors.gameCapacity" />
            
</ field >
            
< field  property ="gamePrice"  depends ="float" >
                
< arg0  key ="errors.gamePrice" />
            
</ field >
        
</ form >     
    
</ formset >
</ form-validation >

 

 

在同个目录下,添加 validator-rules.xml ,这个在 struts 开发包中有,只需要 copy 过来就可以用了。为了方便大家,我这里将里面配置代码粘贴出来:

<? xml version="1.0" encoding="ISO-8859-1"  ?>
<! DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"
>
<!--

   This file contains the default Struts Validator pluggable validator
   definitions.  It should be placed somewhere under /WEB-INF and
   referenced in the struts-config.xml under the plug-in element
   for the ValidatorPlugIn.

      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
                                                  /WEB-INF/validation.xml"/>
      </plug-in>

   These are the default error messages associated with
   each validator defined in this file.  They should be
   added to your projects ApplicationResources.properties
   file or you can associate new ones by modifying the
   pluggable validators msg attributes in this file.

   # Struts Validator Error Messages
   errors.required={0} is required.
   errors.minlength={0} can not be less than {1} characters.
   errors.maxlength={0} can not be greater than {1} characters.
   errors.invalid={0} is invalid.

   errors.byte={0} must be a byte.
   errors.short={0} must be a short.
   errors.integer={0} must be an integer.
   errors.long={0} must be a long.
   errors.float={0} must be a float.
   errors.double={0} must be a double.

   errors.date={0} is not a date.
   errors.range={0} is not in the range {1} through {2}.
   errors.creditcard={0} is an invalid credit card number.
   errors.email={0} is an invalid e-mail address.

-->

< form-validation >

    
< global >
        
< validator  name ="required"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateRequired"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            msg
="errors.required" >
            
< javascript > <![CDATA[
            function validateRequired(form) {
                var isValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRequired = new required();
                for (x in oRequired) {
                    var field = form[oRequired[x][0]];
                    
                    if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'file' ||
                        field.type == 'select-one' ||
                        field.type == 'radio' ||
                        field.type == 'password' ||
                        field.type == 'hidden') {
                        
                        var value = '';
                        // get field's value
                        if (field.type == "select-one") {
                            var si = field.selectedIndex;
                            if (si >= 0) {
                                value = field.options[si].value;
                            }
                        } else {
                            value = field.value;
                        }
                        
                        if (trim(value).length == 0) {
                        
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oRequired[x][1];
                            isValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                  if(focusField.type!='hidden'){
                   focusField.focus();
                  }
                   alert(fields.join('\n'));
                }
                return isValid;
            }
            
            // Trim whitespace from left and right sides of s.
            function trim(s) {
                return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
            }
            
            
]]>   </ javascript >
        
</ validator >
        
<!--
          Åжϸ´Ñ¡¿ò²»ÄÜΪ¿Õ
          ÕÔÆ·º£  2004
          
-->
        
< validator  name ="requiredif"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateRequiredIf"  
            methodParams
="java.lang.Object,
                               org.apache.commons.validator.ValidatorAction,
                               org.apache.commons.validator.Field,
                               org.apache.struts.action.ActionErrors,
                               org.apache.commons.validator.Validator,
                               javax.servlet.http.HttpServletRequest"
 
            msg
="errors.required" >
            
< javascript > <![CDATA[
            function validateRequiredIf(form) {
                var isValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                var j=0;
                oRequiredif = new requiredif();
                for (x in oRequiredif) {
                    var field = form[oRequiredif[x][0]];
                    for(var ii=0;ii<field.length;ii++){
                        if(field[ii].checked==true){
                            j++;
                        }
                    }  
                     if (j == 0) {
                        
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oRequiredif[x][1];
                            isValid = false;
                    }
                }

                if (fields.length > 0) {
                   alert(fields.join('\n'));
                }
                return isValid;
            }
            
]]>   </ javascript >
        
</ validator >
        
< validator  name ="minlength"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateMinLength"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.minlength" >
            
< javascript > <![CDATA[
            function validateMinLength(form) {
                var isValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMinLength = new minlength();
                for (x in oMinLength) {
                    var field = form[oMinLength[x][0]];
                    
                    if (field.type == 'text' ||
                        field.type == 'textarea'||
                        field.type == 'password') {
                        
                        var iMin = parseInt(oMinLength[x][2]("minlength"));
                        if ((trim(field.value).length > 0) && (field.value.length < iMin)) {
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oMinLength[x][1];
                            isValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return isValid;
            }
]]>   </ javascript >
        
</ validator >
        
< validator  name ="maxlength"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateMaxLength"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.maxlength" >
            
< javascript > <![CDATA[
            function validateMaxLength(form) {
                var isValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMaxLength = new maxlength();
                for (x in oMaxLength) {
                    var field = form[oMaxLength[x][0]];
                    
                    if (field.type == 'text' ||
                        field.type == 'textarea'||
                        field.type == 'password') {
                        
                        var iMax = parseInt(oMaxLength[x][2]("maxlength"));
                        if (field.value.length > iMax) {
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oMaxLength[x][1];
                            isValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return isValid;
            }
]]>   </ javascript >
        
</ validator >
        
< validator  name ="mask"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateMask"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.invalid" >
            
< javascript > <![CDATA[
            function validateMask(form) {
                var isValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMasked = new mask();
                for (x in oMasked) {
                    var field = form[oMasked[x][0]];
                    
                    if ((field.type == 'text' || 
                         field.type == 'textarea'||
                        field.type == 'password') && 
                         (field.value.length > 0)) {
                        
                        if (!matchPattern(field.value, oMasked[x][2]("mask"))) {
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oMasked[x][1];
                            isValid = false;
                        }
                    }
                }
                
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return isValid;
            }

            function matchPattern(value, mask) {
               return mask.exec(value);
            }
]]>   </ javascript >
        
</ validator >
        
< validator  name ="byte"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateByte"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.byte"  jsFunctionName ="ByteValidations" >
            
< javascript > <![CDATA[
            function validateByte(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oByte = new ByteValidations();
                for (x in oByte) {
                    var field = form[oByte[x][0]];
                    
                    if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'select-one' ||
                        field.type == 'radio') {

                        var value = '';
                        // get field's value
                        if (field.type == "select-one") {
                            var si = field.selectedIndex;
                            if (si >= 0) {
                                value = field.options[si].value;
                            }
                        } else {
                            value = field.value;
                        }
                        
                        if (value.length > 0) {
                            if (!isAllDigits(value)) {
                                bValid = false;
                                if (i == 0) {
                                    focusField = field;
                                }
                                fields[i++] = oByte[x][1];

                            } else {

                                var iValue = parseInt(value);
                                if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
                                    if (i == 0) {
                                        focusField = field;
                                    }
                                    fields[i++] = oByte[x][1];
                                    bValid = false;
                                }
                            }
                        }
                        
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
]]>   </ javascript >
        
</ validator >
        
< validator  name ="short"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateShort"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.short"  jsFunctionName ="ShortValidations" >
            
< javascript > <![CDATA[
            function validateShort(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oShort = new ShortValidations();
                for (x in oShort) {
                    var field = form[oShort[x][0]];
                    
                    if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'select-one' ||
                        field.type == 'radio') {
                        
                        var value = '';
                        // get field's value
                        if (field.type == "select-one") {
                            var si = field.selectedIndex;
                            if (si >= 0) {
                                value = field.options[si].value;
                            }
                        } else {
                            value = field.value;
                        }
                        
                        if (value.length > 0) {
                            if (!isAllDigits(value)) {
                                bValid = false;
                                if (i == 0) {
                                    focusField = field;
                                }
                                fields[i++] = oShort[x][1];

                            } else {
                        
                                var iValue = parseInt(value);
                                if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
                                    if (i == 0) {
                                        focusField = field;
                                    }
                                    fields[i++] = oShort[x][1];
                                    bValid = false;
                                }
                           }
                       }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
]]>   </ javascript >
        
</ validator >
        
< validator  name ="integer"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateInteger"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.integer"  jsFunctionName ="IntegerValidations" >
            
< javascript > <![CDATA[
            function validateInteger(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oInteger = new IntegerValidations();
                for (x in oInteger) {
                    var field = form[oInteger[x][0]];

                    if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'select-one' ||
                        field.type == 'radio') {
                        
                        var value = '';
                        // get field's value
                        if (field.type == "select-one") {
                            var si = field.selectedIndex;
                            if (si >= 0) {
                                value = field.options[si].value;
                            }
                        } else {
                            value = field.value;
                        }
                        
                        if (value.length > 0) {
                        
                            if (!isAllDigits(value)) {
                                bValid = false;
                                if (i == 0) {
                                    focusField = field;
                                }
                                fields[i++] = oInteger[x][1];
                                
                            } else {
                                var iValue = parseInt(value);
                                if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
                                    if (i == 0) {
                                        focusField = field;
                                    }
                                    fields[i++] = oInteger[x][1];
                                    bValid = false;
                               }
                           }
                       }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }

            function isAllDigits(argvalue) {
                argvalue = argvalue.toString();
                var validChars = "0123456789";
                var startFrom = 0;
                if (argvalue.substring(0, 2) == "0x") {
                   validChars = "0123456789abcdefABCDEF";
                   startFrom = 2;
                } else if (argvalue.charAt(0) == "-") {
                    startFrom = 1;
                }
                
                for (var n = startFrom; n < argvalue.length; n++) {
                    if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
                }
                return true;
            }
]]>   </ javascript >
        
</ validator >
        
< validator  name ="long"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateLong"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.long" />
        
< validator  name ="float"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateFloat"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.float"  jsFunctionName ="FloatValidations" >
            
< javascript > <![CDATA[
            function validateFloat(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oFloat = new FloatValidations();
                for (x in oFloat) {
                    var field = form[oFloat[x][0]];
                    
                    if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'select-one' ||
                        field.type == 'radio') {
                        
                        var value = '';
                        // get field's value
                        if (field.type == "select-one") {
                            var si = field.selectedIndex;
                            if (si >= 0) {
                                value = field.options[si].value;
                            }
                        } else {
                            value = field.value;
                        }
                        
                        if (value.length > 0) {
                            // remove '.' before checking digits
                            var tempArray = value.split('.');
                            var joinedString= tempArray.join('');

                            if (!isAllDigits(joinedString)) {
                                bValid = false;
                                if (i == 0) {
                                    focusField = field;
                                }
                                fields[i++] = oFloat[x][1];

                            } else {
                                var iValue = parseFloat(value);
                                if (isNaN(iValue)) {
                                    if (i == 0) {
                                        focusField = field;
                                    }
                                    fields[i++] = oFloat[x][1];
                                    bValid = false;
                                }
                            }
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
]]>   </ javascript >
        
</ validator >
        
< validator  name ="double"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateDouble"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.double" />
        
< validator  name ="date"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateDate"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.date"  jsFunctionName ="DateValidations" >
            
< javascript > <![CDATA[
            function validateDate(form) {
               var bValid = true;
               var focusField = null;
               var i = 0;
               var fields = new Array();
               oDate = new DateValidations();
               for (x in oDate) {
                   var value = form[oDate[x][0]].value;
                   var datePattern = oDate[x][2]("datePatternStrict");
                   if ((form[oDate[x][0]].type == 'text' ||
                        form[oDate[x][0]].type == 'textarea') &&
                       (value.length > 0) &&
                       (datePattern.length > 0)) {
                     var MONTH = "MM";
                     var DAY = "dd";
                     var YEAR = "yyyy";
                     var orderMonth = datePattern.indexOf(MONTH);
                     var orderDay = datePattern.indexOf(DAY);
                     var orderYear = datePattern.indexOf(YEAR);
                     if ((orderDay < orderYear && orderDay > orderMonth)) {
                         var iDelim1 = orderMonth + MONTH.length;
                         var iDelim2 = orderDay + DAY.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderDay && iDelim2 == orderYear) {
                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
                         } else if (iDelim1 == orderDay) {
                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
                         } else if (iDelim2 == orderYear) {
                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
                         } else {
                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                            if (!isValidDate(matched[2], matched[1], matched[3])) {
                               if (i == 0) {
                                   focusField = form[oDate[x][0]];
                               }
                               fields[i++] = oDate[x][1];
                               bValid =  false;
                            }
                         } else {
                            if (i == 0) {
                                focusField = form[oDate[x][0]];
                            }
                            fields[i++] = oDate[x][1];
                            bValid =  false;
                         }
                     } else if ((orderMonth < orderYear && orderMonth > orderDay)) {
                         var iDelim1 = orderDay + DAY.length;
                         var iDelim2 = orderMonth + MONTH.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderMonth && iDelim2 == orderYear) {
                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
                         } else if (iDelim1 == orderMonth) {
                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
                         } else if (iDelim2 == orderYear) {
                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
                         } else {
                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                             if (!isValidDate(matched[1], matched[2], matched[3])) {
                                 if (i == 0) {
                                     focusField = form[oDate[x][0]];
                                 }
                                 fields[i++] = oDate[x][1];
                                 bValid =  false;
                              }
                         } else {
                             if (i == 0) {
                                 focusField = form[oDate[x][0]];
                             }
                             fields[i++] = oDate[x][1];
                             bValid =  false;
                         }
                     } else if ((orderMonth > orderYear && orderMonth < orderDay)) {
                         var iDelim1 = orderYear + YEAR.length;
                         var iDelim2 = orderMonth + MONTH.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderMonth && iDelim2 == orderDay) {
                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
                         } else if (iDelim1 == orderMonth) {
                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
                         } else if (iDelim2 == orderDay) {
                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
                         } else {
                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                             if (!isValidDate(matched[3], matched[2], matched[1])) {
                                 if (i == 0) {
                                     focusField = form[oDate[x][0]];
                                  }
                                  fields[i++] = oDate[x][1];
                                  bValid =  false;
                              }
                          } else {
                              if (i == 0) {
                                  focusField = form[oDate[x][0]];
                              }
                              fields[i++] = oDate[x][1];
                              bValid =  false;
                          }
                     } else {
                         if (i == 0) {
                             focusField = form[oDate[x][0]];
                         }
                         fields[i++] = oDate[x][1];
                         bValid =  false;
                     }
                  }
               }
               if (fields.length > 0) {
                  focusField.focus();
                  alert(fields.join('\n'));
               }
               return bValid;
            }

        function isValidDate(day, month, year) {
            if (month < 1 || month > 12) {
                    return false;
                }
                if (day < 1 || day > 31) {
                    return false;
                }
                if ((month == 4 || month == 6 || month == 9 || month == 11) &&
                    (day == 31)) {
                    return false;
                }
                if (month == 2) {
                    var leap = (year % 4 == 0 &&
                               (year % 100 != 0 || year % 400 == 0));
                    if (day>29 || (day == 29 && !leap)) {
                        return false;
                    }
                }
                return true;
            }
]]>   </ javascript >
        
</ validator >
        
<!--  range is deprecated use intRange instead  -->
        
< validator  name ="range"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateIntRange"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
="integer"  msg ="errors.range" >
            
< javascript > <![CDATA[
            function validateRange(form) {
                return validateIntRange(form);
            }
]]>   </ javascript >
        
</ validator >
        
< validator  name ="intRange"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateIntRange"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
="integer"  msg ="errors.range" >
            
< javascript > <![CDATA[
            function validateIntRange(form) {
                var isValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRange = new intRange();
                for (x in oRange) {
                    var field = form[oRange[x][0]];
                    
                    if ((field.type == 'text' ||
                         field.type == 'textarea') &&
                        (field.value.length > 0)) {
                        
                        var iMin = parseInt(oRange[x][2]("min"));
                        var iMax = parseInt(oRange[x][2]("max"));
                        var iValue = parseInt(field.value);
                        if (!(iValue >= iMin && iValue <= iMax)) {
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oRange[x][1];
                            isValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    alert(fields.join('\n'));
                }
                return isValid;
            }
]]>   </ javascript >
        
</ validator >
        
< validator  name ="floatRange"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateFloatRange"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
="float"  msg ="errors.range" >
            
< javascript > <![CDATA[
            function validateFloatRange(form) {
                var isValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRange = new floatRange();
                for (x in oRange) {
                    var field = form[oRange[x][0]];
                    
                    if ((field.type == 'text' ||
                         field.type == 'textarea') &&
                        (field.value.length > 0)) {
                        
                        var fMin = parseFloat(oRange[x][2]("min"));
                        var fMax = parseFloat(oRange[x][2]("max"));
                        var fValue = parseFloat(field.value);
                        if (!(fValue >= fMin && fValue <= fMax)) {
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oRange[x][1];
                            isValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    alert(fields.join('\n'));
                }
                return isValid;
            }
]]>   </ javascript >
        
</ validator >
        
< validator  name ="creditCard"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateCreditCard"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.creditcard" >
            
< javascript > <![CDATA[
            function validateCreditCard(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oCreditCard = new creditCard();
                for (x in oCreditCard) {
                    if ((form[oCreditCard[x][0]].type == 'text' ||
                         form[oCreditCard[x][0]].type == 'textarea') &&
                        (form[oCreditCard[x][0]].value.length > 0)) {
                        if (!luhnCheck(form[oCreditCard[x][0]].value)) {
                            if (i == 0) {
                                focusField = form[oCreditCard[x][0]];
                            }
                            fields[i++] = oCreditCard[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    alert(fields.join('\n'));
                }
                return bValid;
            }

            /**
             * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
             */
            function luhnCheck(cardNumber) {
                if (isLuhnNum(cardNumber)) {
                    var no_digit = cardNumber.length;
                    var oddoeven = no_digit & 1;
                    var sum = 0;
                    for (var count = 0; count < no_digit; count++) {
                        var digit = parseInt(cardNumber.charAt(count));
                        if (!((count & 1) ^ oddoeven)) {
                            digit *= 2;
                            if (digit > 9) digit -= 9;
                        };
                        sum += digit;
                    };
                    if (sum == 0) return false;
                    if (sum % 10 == 0) return true;
                };
                return false;
            }

            function isLuhnNum(argvalue) {
                argvalue = argvalue.toString();
                if (argvalue.length == 0) {
                    return false;
                }
                for (var n = 0; n < argvalue.length; n++) {
                    if ((argvalue.substring(n, n+1) < "0") ||
                        (argvalue.substring(n,n+1) > "9")) {
                        return false;
                    }
                }
                return true;
            }
]]>   </ javascript >
        
</ validator >
        
< validator  name ="email"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateEmail"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.email" >
            
< javascript > <![CDATA[
            function validateEmail(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oEmail = new email();
                for (x in oEmail) {
                    if ((form[oEmail[x][0]].type == 'text' ||
                         form[oEmail[x][0]].type == 'textarea') &&
                        (form[oEmail[x][0]].value.length > 0)) {
                        if (!checkEmail(form[oEmail[x][0]].value)) {
                            if (i == 0) {
                                focusField = form[oEmail[x][0]];
                            }
                            fields[i++] = oEmail[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    alert(fields.join('\n'));
                }
                return bValid;
            }

            /**
             * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
             * http://javascript.internet.com
             */
            function checkEmail(emailStr) {
               if (emailStr.length == 0) {
                   return true;
               }
               var emailPat=/^(.+)@(.+)$/;
               var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
               var validChars="\[^\\s" + specialChars + "\]";
               var quotedUser="(\"[^\"]*\")";
               var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
               var atom=validChars + '+';
               var word="(" + atom + "|" + quotedUser + ")";
               var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
               var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
               var matchArray=emailStr.match(emailPat);
               if (matchArray == null) {
                   return false;
               }
               var user=matchArray[1];
               var domain=matchArray[2];
               if (user.match(userPat) == null) {
                   return false;
               }
               var IPArray = domain.match(ipDomainPat);
               if (IPArray != null) {
                   for (var i = 1; i <= 4; i++) {
                      if (IPArray[i] > 255) {
                         return false;
                      }
                   }
                   return true;
               }
               var domainArray=domain.match(domainPat);
               if (domainArray == null) {
                   return false;
               }
               var atomPat=new RegExp(atom,"g");
               var domArr=domain.match(atomPat);
               var len=domArr.length;
               if ((domArr[domArr.length-1].length < 2) ||
                   (domArr[domArr.length-1].length > 3)) {
                   return false;
               }
               if (len < 2) {
                   return false;
               }
               return true;
            }
]]>   </ javascript >
        
</ validator >
        
<!--
          ÅжÏÊý×éÿ¸öÊýÖµ¶¼²»ÄÜΪ¿Õ
          ÕÔÆ·º£  2004
          
-->
        
< validator  name ="requiredArray"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateRequiredArray"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.required"  
            jsFunctionName
="RequiredArrayValidations" >
            
< javascript > <![CDATA[
            function validateRequiredArray(form) {
                var isValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                var j=0;
                oRequired = new RequiredArrayValidations();
                for (x in oRequired) {
                    var field = form[oRequired[x][0]];
                    for(var ii=0;ii<field.length;ii++){
                        if(field[ii].value.length>0){
                            j++;
                        }
                    }  
                     if (j < field.length) {
                        
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oRequired[x][1];
                            isValid = false;
                    }
                }

                if (fields.length > 0) {
                   alert(fields.join('\n'));
                }
                return isValid;
            }
            
]]>   </ javascript >
        
</ validator >
        
<!--
          ÅжÏÊý×éÿ¸ö²»Îª¿ÕµÄÊýÖµ¶¼±ØÐëΪÕûÐÍ
          ÕÔÆ·º£  2004
          
-->
        
< validator  name ="integerArray"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateIntegerArray"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.integer"  
            jsFunctionName
="IntegerArrayValidations" >
            
< javascript > <![CDATA[
            function validateIntegerArray(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var j=0;
                var fields = new Array();
                oInteger = new IntegerArrayValidations();
                for (x in oInteger) {
                    var field = form[oInteger[x][0]];
                    for(var ii=0;ii<field.length;ii++){
                        var value=field[ii].value;
                        if (value.length > 0) {
                        
                            if (!isAllDigits(value)) {
                                bValid = false;                                
                                j++;
                                if(j==1){
                                    focusField = field[ii];
                                }
                                
                            } else {
                                var iValue = parseInt(value);
                                if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
                                    bValid = false;
                                    j++;
                                    if(j==1){
                                        focusField = field[ii];
                                    }
                               }
                           }
                       }
                    }  
                     if (j > 0) {
                        
                            fields[i++] = oInteger[x][1];
                            isValid = false;
                    }
                }
                    
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }

            
]]>   </ javascript >
        
</ validator >
        
<!--
          ÅжÏÊý×éÿ¸ö²»Îª¿ÕµÄÊýÖµ¶¼±ØÐëΪ¸¡µãÐÍ
          ÕÔÆ·º£  2004
          
-->
        
< validator  name ="floatArray"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateFloatArray"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.float"  
            jsFunctionName
="FloatArrayValidations" >
            
< javascript > <![CDATA[
            function validateFloatArray(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var j=0;
                var fields = new Array();
                oFloat = new FloatArrayValidations();
                for (x in oFloat) {
                    var field = form[oFloat[x][0]];
                    for(var ii=0;ii<field.length;ii++){
                        var value=field[ii].value;
                        
                       if (value.length > 0) {
                            // remove '.' before checking digits
                            var tempArray = value.split('.');
                            var joinedString= tempArray.join('');

                            if (!isAllDigits(joinedString)) {
                                bValid = false;
                                j++;
                                if (j == 1) {
                                    focusField = field[ii];
                                }
                                
                            } else {
                                var iValue = parseFloat(value);
                                if (isNaN(iValue)) {
                                    j++;
                                    if (j == 1) {
                                        focusField = field[ii];
                                    }
                                    bValid = false;
                                }
                            }
                        }
                    }  
                     if (j > 0) {
                        
                            fields[i++] = oFloat[x][1];
                            isValid = false;
                    }
                }
                    
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }

            
]]>   </ javascript >
        
</ validator >
        
<!--
          ÅжÏÊý×éÿ¸ö²»Îª¿ÕµÄÊýÖµ¶¼±ØÐëΪ˫¾«¶ÈÐÍ
          ÕÔÆ·º£  2004
          
-->         
        
< validator  name ="doubleArray"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateDoubleArray"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.double" />
        
<!--
          ÅжÏÊý×éÿ¸ö²»Îª¿ÕµÄÊýÖµ¶¼±ØÐëΪÈÕÆÚÐÍ
          ÕÔÆ·º£  2004
          
-->             
        
< validator  name ="dateArray"  
            classname
="org.apache.struts.validator.FieldChecks"  
            method
="validateDateArray"  
            methodParams
="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionErrors,
                       javax.servlet.http.HttpServletRequest"
 
            depends
=""  msg ="errors.date"  jsFunctionName ="DateArrayValidations" >
            
< javascript > <![CDATA[
            function validateDateArray(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var j=0;
                var fields = new Array();
                oDate = new DateArrayValidations();
                for (x in oDate) {
                    var field = form[oDate[x][0]];
                    for(var ii=0;ii<field.length;ii++){
                        var value=field[ii].value;
                        var datePattern = oDate[x][2]("datePatternStrict");
                        if ((value.length > 0) &&
                           (datePattern.length > 0)) {
                          var MONTH = "MM";
                          var DAY = "dd";
                          var YEAR = "yyyy";
                          var orderMonth = datePattern.indexOf(MONTH);
                          var orderDay = datePattern.indexOf(DAY);
                          var orderYear = datePattern.indexOf(YEAR);
                          if ((orderDay < orderYear && orderDay > orderMonth)) {
                             var iDelim1 = orderMonth + MONTH.length;
                             var iDelim2 = orderDay + DAY.length;
                             var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                             var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                             if (iDelim1 == orderDay && iDelim2 == orderYear) {
                                dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
                             } else if (iDelim1 == orderDay) {
                                dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
                             } else if (iDelim2 == orderYear) {
                                dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
                             } else {
                                dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
                             }
                             var matched = dateRegexp.exec(value);
                             if(matched != null) {
                                if (!isValidDate(matched[2], matched[1], matched[3])) {
                                   
                                   bValid =  false;
                                   j++;
                                }
                             } else {
                                bValid =  false;
                                j++;
                             }
                           } else if ((orderMonth < orderYear && orderMonth > orderDay)) {
                             var iDelim1 = orderDay + DAY.length;
                             var iDelim2 = orderMonth + MONTH.length;
                             var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                             var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                             if (iDelim1 == orderMonth && iDelim2 == orderYear) {
                                 dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
                             } else if (iDelim1 == orderMonth) {
                                 dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
                             } else if (iDelim2 == orderYear) {
                                 dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
                             } else {
                                 dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
                             }
                             var matched = dateRegexp.exec(value);
                             if(matched != null) {
                                 if (!isValidDate(matched[1], matched[2], matched[3])) {
                                     j++;
                                     bValid =  false;
                                  }
                             } else {
                                 j++;
                                 bValid =  false;
                             }
                           } else if ((orderMonth > orderYear && orderMonth < orderDay)) {
                             var iDelim1 = orderYear + YEAR.length;
                             var iDelim2 = orderMonth + MONTH.length;
                             var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                             var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                             if (iDelim1 == orderMonth && iDelim2 == orderDay) {
                                 dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
                             } else if (iDelim1 == orderMonth) {
                                 dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
                             } else if (iDelim2 == orderDay) {
                                 dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
                             } else {
                                 dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");
                             }
                             var matched = dateRegexp.exec(value);
                             if(matched != null) {
                                 if (!isValidDate(matched[3], matched[2], matched[1])) {
                                     j++;
                                     bValid =  false;
                                  }
                              } else {
                                  j++;
                                  bValid =  false;
                              }
                         } else {
                             j++;
                             bValid =  false;
                         }
                      }                      
                      }
                     if (j > 0) {
                        
                            fields[i++] = oDate[x][1];
                            isValid = false;
                     }
                }
                    
                if (fields.length > 0) {
                   alert(fields.join('\n'));
                }
                return bValid;
            }

            
]]>   </ javascript >
        
</ validator >
    
</ global >

</ form-validation >
分享到:
评论

相关推荐

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...

    移动ssh项目(struts+spring+hibernate+oracle)130222.rar

    Hibernate则是项目中的ORM(对象关系映射)解决方案,它将Java对象映射到Oracle数据库表中,极大地简化了数据访问层的代码编写,并提高了开发效率。Oracle数据库作为一个强大的关系型数据库管理系统,提供了高性能的...

    博客系统(struts+hibernate+spring)130225.rar

    博客系统(Struts+Hibernate+Spring)130225.rar 是一个计算机专业JSP源码资料包,它提供了一种基于 Struts、Hibernate 和 Spring 框架的博客系统的完整实现。这个资料包包含了一套完整的源代码,可以用于开发和部署...

    博客系统(struts+hibernate+spring)130225.zip

    这个项目是一个基于Java语言开发的Web应用程序,采用SSM(Spring+SpringMVC+MyBatis)或SSH(Spring+SpringMVC+Hibernate)框架进行开发,使用MySQL作为数据存储,JSP作为页面开发。 项目的目标是构建一个高效、可靠...

    图书管理系统(struts+hibernate+spring+ext)130221.zip

    这个项目是一个基于Java语言开发的Web应用程序,采用SSM(Spring+SpringMVC+MyBatis)或SSH(Spring+SpringMVC+Hibernate)框架进行开发,使用MySQL作为数据存储,JSP作为页面开发。 项目的目标是构建一个高效、可靠...

    ssh2(struts2+spring2.5+hibernate3.3)自动生成模版

    就算在项目开发前定制了规范,也有开发人员因为自己的习惯忘记了定制的规范,按照自己的风格来进行代码编写,这样久而久之,一个项目中各种风格的代码都有,对于ssh架构的开发人员每天都会遇到重复的代码编写(当然对重复...

    ssh(structs,spring,hibernate)框架中的上传下载

    Struts+Spring+Hibernate实现上传下载    本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序。SSH各框架的均为当前最新版本:  •Struts 1.2  •Spring 1.2.5  •Hibernate 3.0  本文...

    基于JAVA+struts+hibernate实现的网络购物系统.zip

    这个项目是一个基于Java语言开发的Web应用程序,采用SSM(Spring+SpringMVC+MyBatis)或SSH(Spring+SpringMVC+Hibernate)框架进行开发,使用MySQL作为数据存储,JSP作为页面开发。 项目的目标是构建一个高效、可靠...

    java web技术开发大全(最全最新)

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术的基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握...

    [其他类别]Struts+Hibernate实现MVC_strutsmvc.zip

    这个项目是一个基于Java语言开发的Web应用程序,采用SSM(Spring+SpringMVC+MyBatis)或SSH(Spring+SpringMVC+Hibernate)框架进行开发,使用MySQL作为数据存储,JSP作为页面开发。 项目的目标是构建一个高效、可靠...

    java web开发技术大全

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术的基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握...

    Struts2SpringHibernate整合,一个HelloWorld版的在线书店(项目源码+详尽注释+单元测试)

    Struts2,Spring,Hibernate是Java Web开发中最为常见的3种框架,掌握这3种框架是每个Java Web开发人员的基本功。 然而,很多初学者在集成这3个框架的时候,总是会遇到各种各样的问题。 我在读大学刚刚学习SSH的...

    SSH整合代码

    SH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、...

    spring培训学习笔记

    &lt;br&gt;Spring 是指一个用于构造Java 应用程序的轻量级框架,不限定于只编写web 应用,最少侵入。&lt;br&gt;Spring 的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(Inversion of Control)容器、非侵入性...

    基于JAVA WEB SSH框架的小区物业管理系统(源码+数据库).zip

    Struts2、Spring3.0、Hibernate3.3等技术编写的源代码。 整个项目采用MVC模式,应用Struts Spring Hibernate三个框架实现了一个小区管理系统。分为View层(显示层)、Control层(控制层)、Service 层(业务逻辑层...

    Java Web开发从初学到精通随书光盘源码

    《Java Web开发从初学到精通》开始主要介绍Servlet、JSP、JavaBean、EL、JSTL、JDBC等Web开发基础知识,然后学习Struts、Hibernate、Spring、Ajax、JSF等开源框架,并最终学习如何整合这些开源框架进行J2EE开发,...

Global site tag (gtag.js) - Google Analytics