spring配置详解

合集下载

spring配置文件各个属性详解

spring配置文件各个属性详解

spring配置文件各个属性详解分类:spring 2012-08-09 11:25 9316人阅读评论(2) 收藏举报springaophibernateattributesxhtmlwebsphere目录(?)[+]一、引用外部属性文件<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:mail.properties</value><value>classpath:jdbc.properties</value></list></property></bean>我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属性设置为我们的属性文件。

该类被实现为Bean工厂的后处理器,并将使用定义在文件中的属性来代替所有的占位符(${...}value)。

注意:而在spring2.5的版本中提供了一种更简便的方式,如:1.<context:property-placeholderlocation="classpath:config/jdbc.properties"/>这样以后要使用属性文件中的资源时,可以使用${属性名}来获得。

二、常用数据源的配置第一种是:DBCP数据源,(需要加入2个jar文件,在spring中的lib下jakarta-commons/commons-dbcp.jar和commons-pools.jar)主要配置如下:<!-- Mysql版--><bean id="dataSource"class="mons.dbcp.BasicDataSource"><property name="driverClassName"value="com.mysql.jdbc.Driver"></property><property name="url"value="${jdbc.url}"></property><property name="username" value="${ername}"></property><property name="password" value="${jdbc.password}"></property></bean>第二种是:c3p0数据源,跟第一种一个类型,需加入c3p0.jar包。

spring MVC原理及配置

spring MVC原理及配置

spring MVC原理及配置springmvc原理及配置springmvc原理及配置1.springmvc详述:springmvc就是spring提供更多的一个强悍而有效率的web框架。

借助注释,springmvc提供更多了几乎就是pojo的研发模式,使控制器的研发和测试更加直观。

这些控制器通常不轻易处置命令,而是将其委托给spring上下文中的其他bean,通过spring的倚赖转化成功能,这些bean被转化成至控制器中。

springmvc主要由dispatcherservlet、处理器映射、处理器(控制器)、视图解析器、视图组成。

他的两个核心是两个核心:处理器映射:选择使用哪个控制器来处理请求视图解析器:选择结果应该如何渲染通过以上两点,springmvc确保了如何挑选掌控处置命令和如何挑选视图展现出输入之间的松耦合。

2.springmvc运行原理这里写图片描述(2)找寻处理器:由dispatcherservlet控制器查阅一个或多个handlermapping,找出处置命令的controller。

(3)调用处理器:dispatcherservlet将请求提交到controller。

(4)(5)调用业务处置和回到结果:controller调用业务逻辑处置后,回到modelandview。

3.springmvc接口解释(1)dispatcherservlet接口:spring提供的前端控制器,所有的请求都有经过它来统一分发。

在dispatcherservlet将请求分发给springcontroller 之前,需要借助于spring提供的handlermapping定位到具体的controller。

(2)handlermappingUSB:能够完成客户请求到controller映射。

(3)controller接口:须要为mammalian用户处置上述命令,因此同时实现controllerUSB时,必须确保线程安全并且可以器重。

Spring的datasource配置详解

Spring的datasource配置详解

Spring的datasource配置详解⼀句话,Spring对Hibernate的整合,是在applicationContext.xml中配置sessionFactory来实现的,其中sessionFactory中要装配dataSource。

下⾯就详细介绍dataSource Bean的配置。

先上代码(⽐较齐全的属性)<bean id="dataSource" class="mons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="${driverClassName}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /><!-- 连接初始值,连接池启动时创建的连接数量的初始值 --><property name="initialSize" value="${initialSize}" /><!-- 连接池的最⼤值,同⼀时间可以从池分配的最多连接数量,0时⽆限制 --><property name="maxActive" value="${maxActive}" /><!-- 最⼤空闲值.当经过⼀个⾼峰时间后,连接池可以慢慢将已经⽤不到的连接慢慢释放⼀部分,⼀直减少到maxIdle为⽌,0时⽆限制--><property name="maxIdle" value="${maxIdle}" /><!-- 最⼩空闲值.当空闲的连接数少于阀值时,连接池就会预申请去⼀些连接,以免洪峰来时来不及申请 --><property name="minIdle" value="${minIdle}" /><!-- 是否对已备语句进⾏池管理(布尔值),是否对PreparedStatement进⾏缓存 --><property name="poolPreparedStatements" value="true" /><!-- 是否对sql进⾏⾃动提交 --><property name="defaultAutoCommit" value="true" /></bean>1.Bean的id为dataSource,对应的java类是BasicDataSource,这个类适⽤于配置基本类型的数据库连接,如果要想进⾏多数据源,那么该Bean对应的java类就得⽤DynamicDataSource。

springboot整合CAS配置详解

springboot整合CAS配置详解

springboot整合CAS配置详解在下不才,以下是我花了好⼏天的时间才整合出来的在spring boot⾥⾯的CAS配置整合为了帮助没搞定的⼈,毕竟⾃⼰踩了很多坑,⼀步⼀步爬过来的,有什么不⾜之处可以给建议谢谢(⼩部分代码是整合他⼈的)1.不多废话,直接上最重要的代码,以下代码整合cas的重要过程import org.jasig.cas.client.authentication.AuthenticationFilter;import org.jasig.cas.client.session.SingleSignOutFilter;import org.jasig.cas.client.session.SingleSignOutHttpSessionListener;import org.jasig.cas.client.util.AssertionThreadLocalFilter;import org.jasig.cas.client.util.HttpServletRequestWrapperFilter;import org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter;import org.jasig.cas.client.validation.Cas20ServiceTicketValidator;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.cas.ServiceProperties;import org.springframework.security.cas.authentication.CasAuthenticationProvider;import erdetails.GrantedAuthorityFromAssertionAttributesUserDetailsService;import org.springframework.security.web.authentication.logout.LogoutFilter;import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;import java.util.List;@Configurationpublic class CasConfig {@AutowiredSpringCasAutoconfig autoconfig;private static boolean casEnabled = true;public CasConfig() {}@Beanpublic SpringCasAutoconfig getSpringCasAutoconfig(){return new SpringCasAutoconfig();}/*** ⽤于实现单点登出功能*/@Beanpublic ServletListenerRegistrationBean<SingleSignOutHttpSessionListener> singleSignOutHttpSessionListener() {ServletListenerRegistrationBean<SingleSignOutHttpSessionListener> listener = new ServletListenerRegistrationBean<>();listener.setEnabled(casEnabled);listener.setListener(new SingleSignOutHttpSessionListener());listener.setOrder(1);return listener;}/*** 该过滤器⽤于实现单点登出功能,单点退出配置,⼀定要放在其他filter之前*/@Beanpublic FilterRegistrationBean logOutFilter() {FilterRegistrationBean filterRegistration = new FilterRegistrationBean();LogoutFilter logoutFilter = new LogoutFilter(autoconfig.getCasServerUrlPrefix() + "/logout?service=" + autoconfig.getServerName(),new SecurityContextLogoutHandler()); filterRegistration.setFilter(logoutFilter);filterRegistration.setEnabled(casEnabled);if(autoconfig.getSignOutFilters().size()>0)filterRegistration.setUrlPatterns(autoconfig.getSignOutFilters());elsefilterRegistration.addUrlPatterns("/logout");filterRegistration.addInitParameter("casServerUrlPrefix", autoconfig.getCasServerUrlPrefix());filterRegistration.addInitParameter("serverName", autoconfig.getServerName());filterRegistration.setOrder(2);return filterRegistration;}/*** 该过滤器⽤于实现单点登出功能,单点退出配置,⼀定要放在其他filter之前*/@Beanpublic FilterRegistrationBean singleSignOutFilter() {FilterRegistrationBean filterRegistration = new FilterRegistrationBean();filterRegistration.setFilter(new SingleSignOutFilter());filterRegistration.setEnabled(casEnabled);if(autoconfig.getSignOutFilters().size()>0)filterRegistration.setUrlPatterns(autoconfig.getSignOutFilters());elsefilterRegistration.addUrlPatterns("/*");filterRegistration.addInitParameter("casServerUrlPrefix", autoconfig.getCasServerUrlPrefix());filterRegistration.addInitParameter("serverName", autoconfig.getServerName());filterRegistration.setOrder(3);return filterRegistration;}/*** 该过滤器负责⽤户的认证⼯作*/@Beanpublic FilterRegistrationBean authenticationFilter() {FilterRegistrationBean filterRegistration = new FilterRegistrationBean();filterRegistration.setFilter(new AuthenticationFilter());filterRegistration.setEnabled(casEnabled);if(autoconfig.getAuthFilters().size()>0)filterRegistration.setUrlPatterns(autoconfig.getAuthFilters());elsefilterRegistration.addUrlPatterns("/*");//casServerLoginUrl:cas服务的登陆urlfilterRegistration.addInitParameter("casServerLoginUrl", autoconfig.getCasServerLoginUrl());//本项⽬登录ip+portfilterRegistration.addInitParameter("serverName", autoconfig.getServerName());filterRegistration.addInitParameter("useSession", autoconfig.isUseSession()?"true":"false");filterRegistration.addInitParameter("redirectAfterValidation", autoconfig.isRedirectAfterValidation()?"true":"false");filterRegistration.setOrder(4);return filterRegistration;}/*** 该过滤器负责对Ticket的校验⼯作*/@Beanpublic FilterRegistrationBean cas20ProxyReceivingTicketValidationFilter() {FilterRegistrationBean filterRegistration = new FilterRegistrationBean();Cas20ProxyReceivingTicketValidationFilter cas20ProxyReceivingTicketValidationFilter = new Cas20ProxyReceivingTicketValidationFilter(); //cas20ProxyReceivingTicketValidationFilter.setTicketValidator(cas20ServiceTicketValidator());cas20ProxyReceivingTicketValidationFilter.setServerName(autoconfig.getServerName());filterRegistration.setFilter(cas20ProxyReceivingTicketValidationFilter);filterRegistration.setEnabled(casEnabled);if(autoconfig.getValidateFilters().size()>0)filterRegistration.setUrlPatterns(autoconfig.getValidateFilters());elsefilterRegistration.addUrlPatterns("/*");filterRegistration.addInitParameter("casServerUrlPrefix", autoconfig.getCasServerUrlPrefix());filterRegistration.addInitParameter("serverName", autoconfig.getServerName());filterRegistration.setOrder(5);return filterRegistration;}/*** 该过滤器对HttpServletRequest请求包装,可通过HttpServletRequest的getRemoteUser()⽅法获得登录⽤户的登录名**/@Beanpublic FilterRegistrationBean httpServletRequestWrapperFilter() {FilterRegistrationBean filterRegistration = new FilterRegistrationBean();filterRegistration.setFilter(new HttpServletRequestWrapperFilter());filterRegistration.setEnabled(true);if(autoconfig.getRequestWrapperFilters().size()>0)filterRegistration.setUrlPatterns(autoconfig.getRequestWrapperFilters());elsefilterRegistration.addUrlPatterns("/*");filterRegistration.setOrder(6);return filterRegistration;}/*** 该过滤器使得可以通过org.jasig.cas.client.util.AssertionHolder来获取⽤户的登录名。

Spring中注解配置与xml配置分析

Spring中注解配置与xml配置分析

虽然 2.0 版本发布以来,Spring 陆续提供了十多个注解,但是提供的这些注解只是为了在某些情况下简化 XML 的配置,并非要取代 XML 配置方式。这一点可以从 Spring IoC 容器的初始化类可以看出:ApplicationContext 接口的最常用的实现类是 ClassPathXmlApplicationContext 和 FileSystemXmlApplicationContext,以及面向 Portlet 的 XmlPortletApplicationContext 和面向 web 的 XmlWebApplicationContext,它们都是面向 XML 的。Spring 3.0 新增了另外两个实现类:AnnotationConfigApplicationContext 和 AnnotationConfigWebApplicationContext。从名字便可以看出,它们是为注解而生,直接依赖于注解作为容器配置信息来源的 IoC 容器初始化类。由于 AnnotationConfigWebApplicationContext 是 AnnotationConfigApplicationContext 的 web 版本,其用法与后者相比几乎没有什么差别
也可以单独显式地来启用某个注解处理器,而且可以给处理器添加拦截器:
<be.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
<bean class="monAnnotationBeanPostProcessor"/>
<mvc:annotation-driven />
当然了也可以使用如下的方式显式地加载:

spring中bean配置和bean注入

spring中bean配置和bean注入

spring中bean配置和bean注⼊1 bean与spring容器的关系Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建⽴Bean定义注册表,然后根据注册表加载、实例化Bean,并建⽴Bean和Bean的依赖关系,最后将这些准备就绪的Bean放到Bean缓存池中,以供外层的应⽤程序进⾏调⽤。

1 bean配置bean配置有三种⽅法:基于xml配置Bean使⽤注解定义Bean基于java类提供Bean定义信息1.1 基于xml配置Bean对于基于XML的配置,Spring 2.0以后使⽤Schema的格式,使得不同类型的配置拥有了⾃⼰的命名空间,是配置⽂件更具扩展性。

①默认命名空间:它没有空间名,⽤于Spring Bean的定义;②xsi命名空间:这个命名空间⽤于为每个⽂档中命名空间指定相应的Schema样式⽂件,是标准组织定义的标准命名空间;③aop命名空间:这个命名空间是Spring配置AOP的命名空间,是⽤户⾃定义的命名空间。

命名空间的定义分为两个步骤:第⼀步指定命名空间的名称;第⼆步指定命名空间的Schema⽂档样式⽂件的位置,⽤空格或回车换⾏进⾏分分隔。

1.1.1 Bean基本配置在Spring容器的配置⽂件中定义⼀个简要Bean的配置⽚段如下所⽰:⼀般情况下,Spring IOC容器中的⼀个Bean即对应配置⽂件中的⼀个<bean>,这种镜像对应关系应该容易理解。

其中id为这个Bean的名称,通过容器的getBean("foo")即可获取对应的Bean,在容器中起到定位查找的作⽤,是外部程序和Spring IOC容器进⾏交互的桥梁。

class属性指定了Bean对应的实现类。

下⾯是基于XML的配置⽂件定义了两个简单的Bean:<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd"><bean id="car" name="#car1" class="com.baobaotao.simple.Car"></bean><bean id="boss" class="com.baobaotao.simple.Boss"></bean></beans>1.1.2 依赖注⼊1. 属性注⼊2. 构造函数注⼊3. ⼯⼚⽅式注⼊1.2 使⽤注解定义Bean我们知道,Spring容器成功启动的三⼤要件分别是:Bean定义信息、Bean实现类以及Spring本⾝。

Spring事务配置的五种方式

Spring事务配置的五种方式

Spring事务原理统观spring事务,围绕着两个核心PlatformTransactionManager和TransactionStatusspring提供了几个关于事务处理的类:TransactionDefinition //事务属性定义TranscationStatus //代表了当前的事务,可以提交,回滚。

PlatformTransactionManager这个是spring提供的用于管理事务的基础接口,其下有一个实现的抽象类AbstractPlatformTransactionManager,我们使用的事务管理类例如DataSourceTransactionManager等都是这个类的子类。

一般事务定义步骤:TransactionDefinition td = new TransactionDefinition();TransactionStatus ts = transactionManager.getTransaction(td);try{ //do sthmit(ts);}catch(Exception e){transactionManager.rollback(ts);}spring提供的事务管理可以分为两类:编程式的和声明式的。

编程式的,比较灵活,但是代码量大,存在重复的代码比较多;声明式的比编程式的更灵活。

编程式主要使用transactionTemplate。

省略了部分的提交,回滚,一系列的事务对象定义,需注入事务管理对象.void add(){transactionTemplate.execute( new TransactionCallback(){pulic Object doInTransaction(TransactionStatus ts){ //do sth}}}声明式:使用TransactionProxyFactoryBean:<bean id="userManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"><property name="transactionManager"><ref bean="transactionManager"/></property><property name="target"><ref local="userManagerTarget"/></property><property name="transactionAttributes"><props><prop key="insert*">PROPAGATION_REQUIRED</prop><prop key="update*">PROPAGATION_REQUIRED</prop><prop key="*">PROPAGATION_REQUIRED,readOnly</prop></props></property></bean>围绕Poxy的动态代理能够自动的提交和回滚事务org.springframework.transaction.interceptor.TransactionProxyFactoryBeanPROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。

springlog4j2.xml配置文件详解

springlog4j2.xml配置文件详解

springlog4j2.xml配置⽂件详解⼀、log4j2介绍 log4j 2.x版本不再⽀持像1.x中的.properties后缀的⽂件配置⽅式,2.x版本配置⽂件后缀名只能为".xml",".json"或者".jsn"。

配置⽂件的格式:log2j配置⽂件可以是xml格式的,也可以是json格式的。

配置⽂件的位置:log4j2默认会在classpath⽬录下寻找log4j2.xml、log4j.json、log4j.jsn等名称的⽂件。

系统选择配置⽂件的优先级(从先到后)如下: (1).classpath下的名为log4j2-test.json 或者log4j2-test.jsn的⽂件. (2).classpath下的名为log4j2-test.xml的⽂件. (3).classpath下名为log4j2.json 或者log4j2.jsn的⽂件. (4).classpath下名为log4j2.xml的⽂件. 我们⼀般默认使⽤log4j2.xml进⾏命名。

⼆、配置⽂件节点解析 (1).根节点Configuration有两个属性:status和monitorinterval,有两个⼦节点:Appenders和Loggers(表明可以定义多个Appender和Logger)。

status⽤来指定log4j本⾝的打印⽇志的级别。

monitorinterval⽤于指定log4j⾃动重新配置的监测间隔时间,单位是s,最⼩是5s。

(2).Appenders节点,常见的有三种⼦节点:Console、RollingFile、File。

Console节点⽤来定义输出到控制台的Appender。

name:指定Appender的名字. target:SYSTEM_OUT 或 SYSTEM_ERR,⼀般只设置默认:SYSTEM_OUT。

PatternLayout:输出格式,不设置默认为:%m%n。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2、spring(app-config 文件夹下) app-config 文件夹下主要有 applicationContext_default.xml、a pplicat ionContext_admin.x ml、 applicationContext_order.xml、applicat ionContext.xml、dataAccessContext-loca l.xml 这里主要是设置系统所需要的业务逻辑 bean ,完成符合 spring-beans.dtd 的定义规则
value="/WEB-INF/config/action-servlets-config/action-servlets-default.xml /WEB-INF/config/action-servlets-config/a ction-servlets-order.x ml /WEB-INF/config/action-servlets-config/a ction-servlets-admin.xml" </plug-in> 通过 Spring 框架的 ContextLoaderPlugIn,把 act ion 类交由 Spring 容器来管理 这里需要说明的一点是:是否需要在 struts-config-default.xml 文件中一起加载所有的 act ion-serv lets 信息,还 是对应着分别加载。当然现在的系统中是一起加载的,不过如果分开加载,也可以很好的分模块开发,这边只是 探讨,作个说明而已。 />
type="org.springframework.web.struts.Delegat ingAct ionProxy" scope="request" <forward <forward </action> 注意里面的 type 属性,这里设置的是 org.springfra mework.web.struts.Dele gatingActionProxy ,正是通过它来 使得和 spring 很好的结合起来,这里你会发现没有具体的 action 类,它是通过 struts 和 spring 的结合处理 (action-servlets-config 文件夹下)的配置文件来实现的,这样 action 类也纳入到了 spring 容器的管理体系中去 了。 validate="true" input="/WEB-INF/jsp/login.jsp"> /> />
<!-- 把 Session 工厂注入给 hibernateTemplate --> <!-- 解释 一下 hibernateTemplate : hibernateTemplate 提供了 很多方 便的方 法, 在执行 时自动 建立 HibernateC allback 对象,例如:load()、get()、save 、delete()等方法。 --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <constructor-arg> <ref local="sessionFactory" /> </constructor-arg> </bean> <!-- 把 DAO 注入给 Session 工厂 --> <bean id="userDAO" class="erDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!-- 把 Service 注入给 DAO --> <bean id="userService" class="erService"> <property name="userDAO"> <ref local="userDAO" /> </property> </bean> <!-- 把 Action 注入给 Service --> <bean name="/user" class="erAction"> <property name="userService"> <ref bean="userService" /> </property> </bean> </beans>
name="success" name="failure"
path="/dispatch.do?def=default" path="/WEB-INF/jsp/login.jsp"
struts 和 spring 的结合就是这样来实现的, 当然除了这种方式以外还有其他的, 可以参考: 关于 struts 中 validate 的几种情况 除了以上的配置信息外,还有几个重要的配置,它是结合 Spring、Tiles、 Va lidator 等框架的润滑剂,主要是通 过 Struts 的 plug-in 技术来实现的,举例如下: <plug-in className="org.springfra mework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation"
<plug-in
className="org.apache.struts.tiles.TilesPlugin"> property="definitions-config" /> />
<set-property
value="/WEB-INF/config/tiles-config/t iles -defs-default.x ml" <set-property </plug-in> 实现 Tiles 技术的嫁接 property="moduleAware" value="true"
、验证技术(validation-config 文件夹下)
到这里,或许会留意到没有提及 hibernate , 有关 hibernate 的设置,也是通过 spring 来配置的,在后面的 spring 文件中会看到,有关 hibernate.cfg.xml 则存放在 classpath 下,需要用到的 hibernate 属性配置信息 hibernate.properties 也存放在 classpath 下
下面分别介绍一下各个主要的配置文件内容 1、struts(struts-config 文件夹下) struts-config 文件夹下主要有 struts-config-default.xml、 struts-conf ig-admin.xml、 struts-config-order.x ml 三个 配置文件 这里放置的是有关 struts 的配置信息,比如 form-bean 、action,有关 form-bean 的配置和一般的 struts 程序没 有什么两样,这里需要说明的是 action 的配置 这里举例一个配置片断: <action name="loginForm" parameter="method" path="/loginAction"
分别解释一下各个配置文件的主要用途:
采用 struts+hibernate+spring 开发的一个 web 系统--配置文件介绍
从配置文件说起 在 WEB-INF/config 下有多种配置文件,这里作个介绍,对项目的开发很有意义 主要涉及到了 struts(struts-config 文件夹下) 合处理(action-servlets-config 文件夹下) 模版技术(tiles-config 文件夹下) 、 、spring(app-config 文件夹下) 、struts 和 spring 的结
想必用过 Spring 的程序员们都有这样的感觉,Spring 把逻辑层封装的太完美了(个人感觉 View 层封装的不是 很好)。以至于有的初学者都不知道 Spring 配置文件的意思,就拿来用了。所以今天我给大家详细解释一下 Spring 的 applicationC ontext.xml 文件。Ok ,还是通过代码加注释的方式为大家演示: 以下是详解 Spring 的 applicationContext.xml 文件代码: <!-- 头文件,主要注意一下编码 --> <?xml version="1.0" encoding="UTF-8"?> <!DOC TYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"org.apache.struts.validator.ValidatorPlugIn"> property="pathnames"
<set-property
value="/WEB-INF/config/validation-conf ig/validator-rules -default.x ml, /WEB-INF/config/validation-config/validation-default.xml" </plug-in> 在 Struts 框架中采用 Validator 框架的验证机制 />
相关文档
最新文档