struts+spring+hibernate的web应用<四> Web层代码编写(1)
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;
????}
????
}
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;
????}
}
<?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>
<!--?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>
<?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>
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.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
<!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>
<?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>
????????<!--
???????????D???′???ò2??ü?a??
?????????????·o£??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>
????????<!--
???????????D??êy×é????êy?μ??2??ü?a??
?????????????·o£??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>
????????<!--
???????????D??êy×é????2??a??μ?êy?μ??±?D??a??Dí
?????????????·o£??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>
????????<!--
???????????D??êy×é????2??a??μ?êy?μ??±?D??a??μ?Dí
?????????????·o£??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>
????????<!--
???????????D??êy×é????2??a??μ?êy?μ??±?D??a?????èDí
?????????????·o£??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"/>
????????<!--
???????????D??êy×é????2??a??μ?êy?μ??±?D??aè??úDí
?????????????·o£??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>