- 浏览: 111455 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
guanglizi:
V和\2表示什么?好像没见过
javascript常用日期验证 -
梅花簪:
不支持chrome,ff
固定表头列头Javascript代码 -
xy5811:
新浪微博应该不是直接用的这个算法,至少chars数组中顺序不一 ...
微博短链接的生成算法(Java版本) -
struts_2010:
...
MyEclipse 6.5 GA 下载 + 汉化方法 + 序列号 -
闫村林:
...
spring Hibernate struts整合配置(一)
上一篇讲到DAO的配置,里面涉及到一些基本类,如下:
OSCacheProvider.java
public class OSCacheProvider implements CacheProvider { /** * The <tt>OSCache</tt> refresh period property suffix. */ public static final String OSCACHE_REFRESH_PERIOD = "refresh.period"; /** * The <tt>OSCache</tt> CRON expression property suffix. */ public static final String OSCACHE_CRON = "cron"; private static final Properties OSCACHE_PROPERTIES = new Config().getProperties(); /** * Builds a new {@link Cache} instance, and gets it's properties from the OSCache {@link Config} * which reads the properties file (<code>oscache.properties</code>) from the classpath. * If the file cannot be found or loaded, an the defaults are used. * * @param region * @param properties * @return * @throws CacheException */ public Cache buildCache(String region, Properties properties) throws CacheException { int refreshPeriod = PropertiesHelper.getInt( StringHelper.qualify(region, OSCACHE_REFRESH_PERIOD), OSCACHE_PROPERTIES, CacheEntry.INDEFINITE_EXPIRY ); String cron = OSCACHE_PROPERTIES.getProperty( StringHelper.qualify(region, OSCACHE_CRON) ); // construct the cache return new OSCache(refreshPeriod, cron, region); } public long nextTimestamp() { return Timestamper.next(); } public boolean isMinimalPutsEnabledByDefault() { return false; } /** * Callback to perform any necessary cleanup of the underlying cache implementation * during SessionFactory.close(). */ public void stop() { } /** * Callback to perform any necessary initialization of the underlying cache implementation * during SessionFactory construction. * * @param properties current configuration settings. */ public void start(Properties properties) throws CacheException { } }
BaseDAO.java
public class BaseDAO extends AbstractDaoSupport implements DAO { protected final Log log = LogFactory.getLog(getClass()); /** * @see com.timeson.framework.dao.DAO#saveObject(Object) */ public void saveObject(Object o) { getHibernateTemplate().saveOrUpdate(o); } /** * @see com.timeson.framework.dao.DAO#getObject(Class, java.io.Serializable) */ public Object getObject(Class clazz, Serializable id) { Object o = getHibernateTemplate().get(clazz, id); if(o == null) { throw new ObjectRetrievalFailureException(clazz, id); } return o; } /** * @see com.timeson.framework.dao.DAO#getObjects(Class) */ public List getObjects(Class clazz) { return getHibernateTemplate().loadAll(clazz); } /** * @see com.timeson.framework.dao.DAO#removeObject(Class, java.io.Serializable) */ public void removeObject(Class clazz, Serializable id) { getHibernateTemplate().delete(getObject(clazz, id)); } }
DAO.java
public interface DAO { /** * Generic method used to get all objects of a particular type. This * is the same as lookup up all rows in a table. * * @param clazz the type of objects (a.k.a. while table) to get data from * @return List of populated objects */ public List getObjects(Class clazz); /** * Generic method to get an object based on class and identifier. An * ObjectRetrievalFailureException Runtime Exception is thrown if * nothing is found. * * @param clazz model class to lookup * @param id the identifier (primary key) of the class * @return a populated object * @see com.springframework.orm.ObjectRetrievalFailureException */ public Object getObject(Class clazz, Serializable id); /** * Generic method to save an object - handles both update and insert. * * @param o the object to save */ public void saveObject(Object o); /** * Generic method to delete an object based on class and id * * @param clazz model class to lookup * @param id the identifier (primary key) of the class */ public void removeObject(Class clazz, Serializable id); }
spring
applicationContext-service.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager" ref="transactionManager"/> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="Send*">PROPAGATION_REQUIRED</prop> <prop key="Complete*">PROPAGATION_REQUIRED</prop> <prop key="complete*">PROPAGATION_REQUIRED</prop> <prop key="Finish*">PROPAGATION_REQUIRED</prop> <prop key="finish*">PROPAGATION_REQUIRED</prop> <prop key="Require*">PROPAGATION_REQUIRED</prop> <prop key="send*">PROPAGATION_REQUIRED</prop> <prop key="remove*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> <prop key="add*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <!-- Generic manager that can be used to do basic CRUD operations on any objects --> <bean id="manager" parent="txProxyTemplate"> <property name="target"> <bean class="BaseManager"> <property name="DAO" ref="dao"/> </bean> </property> </bean> </beans>
涉及到的类
BaseManager.java
public class BaseManager implements Manager { protected final Log log = LogFactory.getLog(getClass()); protected DAO dao = null; /** * @see com.timeson.framework.service.Manager#setDAO(com.timeson.framework.dao.DAO) */ public void setDAO(DAO dao) { this.dao = dao; } /** * @see com.timeson.framework.service.Manager#getObject(java.lang.Class, java.io.Serializable) */ public Object getObject(Class clazz, Serializable id) { return dao.getObject(clazz, id); } /** * @see com.timeson.framework.service.Manager#getObjects(java.lang.Class) */ public List getObjects(Class clazz) { return dao.getObjects(clazz); } /** * @see com.timeson.framework.service.Manager#removeObject(java.lang.Class, java.io.Serializable) */ public void removeObject(Class clazz, Serializable id) { dao.removeObject(clazz, id); } /** * @see com.timeson.framework.service.Manager#saveObject(java.lang.Object) */ public void saveObject(Object o) { dao.saveObject(o); } }
Manager.java
public interface Manager { /** * Expose the setDAO method for testing purposes * * @param dao */ public void setDAO(DAO dao); /** * Generic method used to get a all objects of a particular type. * * @param clazz the type of objects * @return List of populated objects */ public List getObjects(Class clazz); /** * Generic method to get an object based on class and identifier. * * @param clazz model class to lookup * @param id the identifier (primary key) of the class * @return a populated object * @see com.springframework.orm.ObjectRetrievalFailureException */ public Object getObject(Class clazz, Serializable id); /** * Generic method to save an object. * * @param o the object to save */ public void saveObject(Object o); /** * Generic method to delete an object based on class and id * * @param clazz model class to lookup * @param id the identifier of the class */ public void removeObject(Class clazz, Serializable id); }
struts
<struts-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <!--uncommnet this node if neccessary--> <global-forwards> <forward name="systemfailure" path="/WEB-INF/jsp/common/errors.jsp" contextRelative="true"/> <forward name="failure" path="/WEB-INF/jsp/common/errors.jsp" contextRelative="true"/> <forward name="userfailure" path="/indexTbMainInfopublish.do?method=getInfoTypeListindex" contextRelative="true"/> <forward name="sessionfailure" path="/WEB-INF/jsp/common/SessionError.jsp" contextRelative="true"/> <forward name="accessfailure" path="/WEB-INF/jsp/common/privilegeErrors.jsp" contextRelative="true"/> </global-forwards> <controller nocache="true" inputForward="true" maxFileSize="2M"/> <!-- ========== Messages Location =================================== --> <message-resources factory="com.timeson.framework.util.MultiMessageResourcesFactory" parameter="ApplicationResources" /> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/config/validator/validator-rules.xml"/> </plug-in> </struts-config>
struts-config-oa-sso.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <form-beans> <form-bean name="ssoSinulateForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="userID" type="java.lang.String"/> </form-bean> <form-bean name="ssoLoginForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="userID" type="java.lang.String"/> <form-property name="userName" type="java.lang.String"/> <form-property name="password" type="java.lang.String"/> <form-property name="orgId" type="java.lang.String"/> <form-property name="company" type="java.lang.String"/> <form-property name="companyId" type="java.lang.String"/> <form-property name="temUserName" type="java.lang.String"/> <form-property name="temUserId" type="java.lang.String"/> <form-property name="codeStr" type="java.lang.String"/> </form-bean> <form-bean name="awokeSwitchForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="awokeSwitchBean" type="com.timeson.oa.sso.model.SysAwokeSwitch"/> <form-property name="userName" type="java.lang.String"/> </form-bean> <form-bean name="TbMenuForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="idArr" type="java.lang.String[]"/> <form-property name="id" type="java.lang.String"/> <form-property name="menuId" type="java.lang.String"/> <form-property name="menuPid" type="java.lang.String"/> <form-property name="menuName" type="java.lang.String"/> <form-property name="menuUrl" type="java.lang.String"/> <form-property name="menuTitle" type="java.lang.String"/> <form-property name="menuTarget" type="java.lang.String"/> <form-property name="menuIcon" type="java.lang.String"/> <form-property name="menuIconopen" type="java.lang.String"/> <form-property name="menuOpen" type="java.lang.String"/> <form-property name="roleId" type="java.lang.Integer"/> </form-bean> </form-beans> <action-mappings> <action path="/redirectToSSO" parameter="/WEB-INF/jsp/sso/ssoEntry.jsp" type="org.apache.struts.actions.ForwardAction"/> <action path="/loginMailSys" name="ssoSinulateForm" parameter="method" scope="request" type="com.timeson.oa.sso.web.SsoAction"> <forward name="ssoForWard" path="/WEB-INF/jsp/sso/ssoForward.jsp"/> <forward name="failure" path="/WEB-INF/jsp/sso/ssoFailure.jsp"/> </action> <action path="/loginOtherSys" name="ssoSinulateForm" parameter="method" scope="request" type="com.timeson.oa.sso.web.SsoAction"> <forward name="ssoForWard" path="/WEB-INF/jsp/sso/ssoForward.jsp"/> </action> <action path="/getawokeSwitch" name="awokeSwitchForm" parameter="method" scope="request" type="com.timeson.oa.sso.web.TbMenuAction"> <forward name="getSysAwokeSwitch" path="/WEB-INF/jsp/sso/awokeSwitch.jsp"/> </action> <action path="/IniResetpwd" parameter="/WEB-INF/jsp/sso/resetpwd.jsp" type="org.apache.struts.actions.ForwardAction"> </action> <action path="/loginOASys" name="ssoLoginForm" parameter="method" scope="request" type="com.timeson.oa.sso.web.SsoAction"> <forward name="successPro" path="/interFaceList.do?method=index" redirect="true"/> <!--<forward name="success" path="/WEB-INF/jsp/homepage/index.html"/>--> <forward name="success" path="/WEB-INF/jsp/new_homepage/new_index.html"/> <forward name="resetpwd" path="/WEB-INF/jsp/sso/resetpwd.jsp"/> <forward name="changeCompany" path="/WEB-INF/jsp/sso/resetpwd.jsp"/> <forward name="loginMail" path="/WEB-INF/jsp/new_default/loginMail.jsp"/> <forward name="error" path="/WEB-INF/jsp/common/errors.jsp" contextRelative="true" redirect="false"/> <forward name="userList" path="/WEB-INF/jsp/sso/userList.jsp"/> <forward name="switchCompany" path="/WEB-INF/jsp/sso/switchCompany.jsp"/> </action> <action path="/listTbMenu" name="TbMenuForm" parameter="method" scope="request" type="com.timeson.oa.sso.web.TbMenuAction" validate="false" > <forward name="list.success" path="/WEB-INF/jsp/sysmgmt/menu/TbMenuList.jsp"/> <forward name="add" path="/WEB-INF/jsp/sysmgmt/menu/TbMenuForm.jsp"/> </action> <action path="/editTbMenu" name="TbMenuForm" parameter="method" scope="request" type="com.timeson.oa.sso.web.TbMenuAction" validate="false" > <forward name="add" path="/WEB-INF/jsp/sysmgmt/menu/TbMenuForm.jsp"/> <forward name="edit.suceess" path="/WEB-INF/jsp/sysmgmt/menu/TbMenuForm.jsp"/> </action> <action path="/searchLog" name="ssoLoginForm" parameter="method" scope="request" type="com.timeson.oa.sso.web.SsoAction"> <forward name="init" path="/WEB-INF/jsp/homepage/searchLoginLog.jsp"/> <forward name="list" path="/WEB-INF/jsp/homepage/searchLoginLogList.jsp"/> </action> <action path="/lock" name="TbMenuForm" parameter="method" scope="request" type="com.timeson.oa.sso.web.SsoAction"> <forward name="list" path="/WEB-INF/jsp/homepage/lockUser.jsp"/> <forward name="searchList" path="/WEB-INF/jsp/homepage/searchLockUser.jsp"/> <forward name="init" path="/WEB-INF/jsp/homepage/lockSearch.jsp"/> </action> <action path="/eiacLogin" parameter="/WEB-INF/jsp/sso/eiacLogin.jsp" type="org.apache.struts.actions.ForwardAction"/> <action path="/loginOASysEiac" name="TbMenuForm" parameter="method" scope="request" type="com.timeson.oa.sso.web.SsoAction"> <forward name="success" path="/WEB-INF/jsp/new_homepage/eaicIndex.jsp"/> <forward name="infoList" path="/WEB-INF/jsp/new_homepage/eaicInfoList.jsp"/> </action> </action-mappings> </struts-config>
validator-rules.xml
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1.dtd"> <!-- $Header: C:/iConnect/common-files/docroot/WEB-INF/validation-rules/validator-rules.xml,v 1.4 2004/10/14 09:12:03 mcchang Exp $ $Revision: 1.4 $ $Date: 2004/10/14 09:12:03 $ 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. Note: Starting in Struts 1.2.0 the default javascript definitions have been consolidated to commons-validator. The default can be overridden by supplying a <javascript> element with a CDATA section, just as in struts 1.1. --> <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.ActionMessages, javax.servlet.http.HttpServletRequest" msg="errors.required"/> <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.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest" msg="errors.required"/> <validator name="validwhen" msg="errors.required" classname="org.apache.struts.validator.validwhen.ValidWhen" method="validateValidWhen" methodParams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest"/> <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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" msg="errors.minlength" jsFunction="org.apache.commons.validator.javascript.validateMinLength"/> <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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" msg="errors.maxlength" jsFunction="org.apache.commons.validator.javascript.validateMaxLength"/> <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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" msg="errors.invalid"/> <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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" msg="errors.byte" jsFunctionName="ByteValidations"/> <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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" msg="errors.short" jsFunctionName="ShortValidations"/> <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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" msg="errors.integer" jsFunctionName="IntegerValidations"/> <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.ActionMessages, 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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" msg="errors.float" jsFunctionName="FloatValidations"/> <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.ActionMessages, 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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" msg="errors.date" jsFunctionName="DateValidations"/> <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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="integer" msg="errors.range"/> <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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="float" msg="errors.range"/> <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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" msg="errors.creditcard"/> <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.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" msg="errors.email"/> <validator name="url" classname="org.apache.struts.validator.FieldChecks" method="validateUrl" methodParams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" depends="" msg="errors.url"/> <!-- This simply allows struts to include the validateUtilities into a page, it should not be used as a validation rule. --> <validator name="includeJavaScriptUtilities" classname="" method="" methodParams="" depends="" msg="" jsFunction="org.apache.commons.validator.javascript.validateUtilities"/> <validator name="twofields" classname="com.timeson.framework.util.ValidationUtil" method="validateTwoFields" methodParams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" depends="required" msg="errors.twofields"> <javascript><![CDATA[ function validateTwoFields(form) { var bValid = true; var focusField = null; var i = 0; var fields = new Array(); var formName = form.getAttributeNode("name"); oTwoFields = eval('new ' + formName.value + '_twofields()'); for (x in oTwoFields) { var field = form[oTwoFields[x][0]]; var secondField = form[oTwoFields[x][2]("secondProperty")]; if (field.type == 'text' || field.type == 'textarea' || field.type == 'select-one' || field.type == 'radio' || field.type == 'password') { var value; var secondValue; // get field's value if (field.type == "select-one") { var s1i = field.selectedIndex; value = field.options[s1i].value; var s2i = secondField.selectedIndex; secondValue = secondField.options[s2i].value; } else { value = field.value; secondValue = secondField.value; } if (value != secondValue) { if (i == 0) { focusField = field; } fields[i++] = oTwoFields[x][1]; bValid = false; } } } if (fields.length > 0) { focusField.focus(); alert(fields.join('\n')); } return bValid; }]]> </javascript> </validator> <constant> <constant-name>phone</constant-name> <constant-value>^\(?(\d{3,4})\)?[-| ]?(\d{3,4})[-| ]?(\d{4})$</constant-value> </constant> <constant> <constant-name>ip</constant-name> <constant-value> ^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$</constant-value> </constant> <constant> <constant-name>zip</constant-name> <constant-value>^\d{5}\d*$</constant-value> </constant> <constant> <constant-name>currency</constant-name> <constant-value>^\d{1,3}(,?\d{1,3})*\.?(\d{1,2})?</constant-value> </constant> <constant> <constant-name>date</constant-name> <constant-value>yyyy-MM-dd</constant-value> </constant> <constant> <constant-name>code</constant-name> <constant-value>^[a-zA-Z0-9]*$</constant-value> </constant> <constant> <constant-name>days</constant-name> <constant-value>^\d{0,7}$</constant-value> </constant> </global> </form-validation>
发表评论
-
Xfire配置Web Service+Spring+Hibernate详细流程(转)
2008-06-20 14:19 3075如题 -
spring Hibernate struts整合配置(一)
2008-06-20 11:08 1847以下为项目相关的整合配置,以备后查. web.xml &l ... -
axis 整合spring 开发
2008-06-20 10:55 2585前两因项目要做个接口,以webservice方式传递数据.现把 ... -
spring 事务处理配置
2007-07-12 15:54 1245applicationContext-service.xml ...
相关推荐
2. **Struts整合** - 配置Struts的`struts-config.xml`文件,声明Action和ActionForm,设置Action的Forward规则。 - 创建ActionForm类,如`LoginForm`,定义表单字段,与JSP页面中的表单元素对应。 - 创建Action...
在Spring和Struts整合时,Spring可以作为Action的依赖注入容器,提供业务对象给Struts,从而减少代码耦合。 4. **整合过程**: - **配置Spring**:创建Spring的配置文件,如`applicationContext.xml`,定义Bean的...
书中会详细讲述如何配置这些框架,使它们协同工作,包括Spring与Hibernate的事务管理、数据源配置、以及Struts2与Spring的整合等。 除此之外,书中还可能涵盖了单元测试、异常处理、安全性配置等方面的内容,这些都...
【Spring、Hibernate、Struts整合开发】 在Java应用开发中,Spring、Hibernate和Struts是三个非常重要的框架,它们各自负责不同的职责。Spring作为一个轻量级的容器,提供了依赖注入和面向切面编程(AOP)等功能;...
整合的四大框架项目 spring hibernate struts ajax整合项目源代码 spring hibernate struts ajax整合项目源代码
整合Spring、Hibernate和Struts,可以创建出高效、模块化且易于维护的企业级Web应用。这个过程通常被称为SSH整合,它是Java开发中的经典组合,尤其是在早期的Java EE项目中非常流行。 首先,Spring作为核心框架,...
在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...
【标题】:“Hibernate、Struts2与Spring的整合项目” 【描述】:“这是一个将Hibernate、Struts2和Spring三大框架集成在一起的项目示例。它展示了如何在实际开发中有效地结合这三个强大的Java技术,实现数据持久层...
在实际项目中,开发者需要配置相关的XML配置文件,例如Spring的applicationContext.xml,Struts的struts.xml,以及Hibernate的hibernate.cfg.xml。这些配置文件定义了组件的设置、数据源、实体类映射等信息。 整合...
Struts、Spring 和 Hibernate 是三个著名的 Java 开发框架,它们分别负责不同的职责。Struts 是一个 MVC(Model-View-Controller)框架,主要用于构建 web 应用的控制层,简化了Servlet和JSP的开发。Spring 是一个...
标题中的"spring hibernate struts2 整合jar包"指的是一个用于构建Java Web应用程序的集成框架,这个框架集成了Spring、Hibernate和Struts2这三个关键的开源技术。Spring是全面的企业级应用开发框架,提供了依赖注入...
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
整合SSH涉及到的主要配置文件有`struts2-spring-plugin.xml`、`spring-context.xml`以及Hibernate的相关配置文件(如`hibernate.cfg.xml`)。`struts2-spring-plugin.xml`配置Struts2与Spring的集成,确保Action类由...
7. **整合过程**:SSH整合主要包括配置Struts的配置文件(struts-config.xml),Spring的配置文件(spring-beans.xml),以及Hibernate的配置文件(hibernate.cfg.xml)。Struts和Spring之间通过ActionServlet和Spring的...
在本整合中,Spring 2.5.6版本主要作为业务逻辑的管理和协调者,它可以通过配置文件管理Bean的生命周期,同时与Hibernate和Struts进行无缝集成。 Hibernate 3.2是一个流行的ORM(对象关系映射)工具,它消除了...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合(SSH)极大地提升了开发效率和项目的可维护性。下面将详细讲解这三大框架的核心功能以及整合过程中的关键知识点。 1. **Struts2**:Struts2是一...
通过以上步骤,一个基本的Struts、Spring和Hibernate整合的应用就搭建完成了。这个整合的关键在于Struts处理HTTP请求,Spring管理业务对象和依赖,而Hibernate则处理数据库操作。这样的架构可以实现松耦合,便于代码...
整合Spring、Struts和Hibernate能带来很多优势,比如松耦合的架构、便捷的数据库操作以及清晰的MVC分离。不过,这种整合也增加了项目的复杂性,因此在实际应用中,需要根据项目需求和团队技术栈来选择合适的技术方案...