Struts2框架有两个核心配置文件:struts.xml和Struts2默认属性文件default.properties(在struts2-core-2.3.20.jar中)
default.properties可以通过自己在classpath下写一个struts.properties文件进行定制改写
为什么是struts.properties,这可以看org.apache.struts2.config下的DefaultSettings和PropertiesSettings源码
DefaultSettings.java
public DefaultSettings() {
ArrayList list = new ArrayList();
// stuts.properties, default.properties
try {
list.add(new PropertiesSettings("struts"));
} catch (Exception e) {
log.warn("DefaultSettings: Could not find or error in struts.properties", e);
}
PropertiesSettings.java
public PropertiesSettings(String name) {
URL settingsUrl = ClassLoaderUtil.getResource(name + ".properties", getClass());
if (settingsUrl == null) {
if (LOG.isDebugEnabled()) {
LOG.debug(name + ".properties missing");
}
settings = new LocatableProperties();
return;
}
也可以把你想写在struts.properties的自定义配置写在struts.xml文件下
在strut源码StrutsConstants.class包含了所有可配置项
package org.apache.struts2;
import org.apache.struts2.dispatcher.mapper.CompositeActionMapper;
public final class StrutsConstants {
public static final String STRUTS_DEVMODE = "struts.devMode";
public static final String STRUTS_I18N_RELOAD = "struts.i18n.reload";
public static final String STRUTS_I18N_ENCODING = "struts.i18n.encoding";
public static final String STRUTS_CONFIGURATION_XML_RELOAD = "struts.configuration.xml.reload";
public static final String STRUTS_ACTION_EXTENSION = "struts.action.extension";
public static final String STRUTS_ACTION_EXCLUDE_PATTERN = "struts.action.excludePattern";
public static final String STRUTS_TAG_ALTSYNTAX = "struts.tag.altSyntax";
public static final String STRUTS_URL_HTTP_PORT = "struts.url.http.port";
public static final String STRUTS_URL_HTTPS_PORT = "struts.url.https.port";
public static final String STRUTS_URL_INCLUDEPARAMS = "struts.url.includeParams";
public static final String STRUTS_URL_RENDERER = "struts.urlRenderer";
public static final String STRUTS_OBJECTFACTORY = "struts.objectFactory";
public static final String STRUTS_OBJECTFACTORY_ACTIonFACTORY = "struts.objectFactory.actionFactory";
public static final String STRUTS_OBJECTFACTORY_RESULTFACTORY = "struts.objectFactory.resultFactory";
public static final String STRUTS_OBJECTFACTORY_ConVERTERFACTORY = "struts.objectFactory.converterFactory";
public static final String STRUTS_OBJECTFACTORY_INTERCEPTORFACTORY = "struts.objectFactory.interceptorFactory";
public static final String STRUTS_OBJECTFACTORY_VALIDATORFACTORY = "struts.objectFactory.validatorFactory";
public static final String STRUTS_OBJECTFACTORY_UNKNOWNHANDLERFACTORY = "struts.objectFactory.unknownHandlerFactory";
public static final String STRUTS_FILE_MANAGER_FACTORY = "struts.fileManagerFactory";
public static final String STRUTS_FILE_MANAGER = "struts.fileManager";
public static final String STRUTS_OBJECTTYPEDETERMINER = "struts.objectTypeDeterminer";
public static final String STRUTS_CONTINUATIONS_PACKAGE = "struts.continuations.package";
public static final String STRUTS_ConFIGURATION = "struts.configuration";
public static final String STRUTS_LOCALE = "struts.locale";
public static final String STRUTS_DISPATCHER_PARAMETERSWORKAROUND = "struts.dispatcher.parametersWorkaround";
public static final String STRUTS_FREEMARKER_MANAGER_CLASSNAME = "struts.freemarker.manager.classname";
@Deprecated
public static final String STRUTS_FREEMARKER_TEMPLATES_CACHE = "struts.freemarker.templatesCache";
public static final String STRUTS_FREEMARKER_TEMPLATES_CACHE_UPDATE_DELAY = "struts.freemarker.templatesCache.updateDelay";
public static final String STRUTS_FREEMARKER_BEANWRAPPER_CACHE = "struts.freemarker.beanwrapperCache";
public static final String STRUTS_FREEMARKER_MRU_MAX_STRONG_SIZE = "struts.freemarker.mru.max.strong.size";
public static final String STRUTS_VELOCITY_MANAGER_CLASSNAME = "struts.velocity.manager.classname";
public static final String STRUTS_VELOCITY_ConFIGFILE = "struts.velocity.configfile";
public static final String STRUTS_VELOCITY_TOOLBOXLOCATION = "struts.velocity.toolboxlocation";
public static final String STRUTS_VELOCITY_ConTEXTS = "struts.velocity.contexts";
public static final String STRUTS_UI_TEMPLATEDIR = "struts.ui.templateDir";
public static final String STRUTS_UI_THEME = "struts.ui.theme";
public static final String STRUTS_UI_THEME_EXPANSION_TOKEN = "struts.ui.theme.expansion.token";
public static final String STRUTS_MULTIPART_MAXSIZE = "struts.multipart.maxSize";
public static final String STRUTS_MULTIPART_SAVEDIR = "struts.multipart.saveDir";
public static final String STRUTS_MULTIPART_BUFFERSIZE = "struts.multipart.bufferSize";
public static final String STRUTS_MULTIPART_PARSER = "struts.multipart.parser";
public static final String STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE = "struts.objectFactory.spring.autoWire";
public static final String STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE_ALWAYS_RESPECT = "struts.objectFactory.spring.autoWire.alwaysRespect";
public static final String STRUTS_OBJECTFACTORY_SPRING_USE_CLASS_CACHE = "struts.objectFactory.spring.useClassCache";
public static final String STRUTS_OBJECTFACTORY_SPRING_ENABLE_AOP_SUPPORT = "struts.objectFactory.spring.enableAopSupport";
public static final String STRUTS_XSLT_NOCACHE = "struts.xslt.nocache";
public static final String STRUTS_CUSTOM_PROPERTIES = "struts.custom.properties";
public static final String STRUTS_CUSTOM_I18N_RESOURCES = "struts.custom.i18n.resources";
public static final String STRUTS_MAPPER_CLASS = "struts.mapper.class";
public static final String PREFIX_baseD_MAPPER_ConFIGURATION = "struts.mapper.prefixMapping";
public static final String STRUTS_SERVE_STATIC_ConTENT = "struts.serve.static";
public static final String STRUTS_SERVE_STATIC_BROWSER_CACHE = "struts.serve.static.browserCache";
public static final String STRUTS_ENABLE_DYNAMIC_METHOD_INVOCATION = "struts.enable.DynamicMethodInvocation";
public static final String STRUTS_ENABLE_SLASHES_IN_ACTION_NAMES = "struts.enable.SlashesInActionNames";
public static final String STRUTS_MAPPER_COMPOSITE = "struts.mapper.composite";
public static final String STRUTS_ACTIonPROXYFACTORY = "struts.actionProxyFactory";
public static final String STRUTS_FREEMARKER_WRAPPER_ALT_MAP = "struts.freemarker.wrapper.altMap";
public static final String STRUTS_XWORKConVERTER = "struts.xworkConverter";
public static final String STRUTS_ALWAYS_SELECT_FULL_NAMESPACE = "struts.mapper.alwaysSelectFullNamespace";
public static final String STRUTS_XWORKTEXTPROVIDER = "struts.xworkTextProvider";
public static final String STRUTS_LOCALE_PROVIDER = "struts.localeProvider";
public static final String STRUTS_ID_PARAMETER_NAME = "struts.mapper.idParameterName";
public static final String STRUTS_ALLOW_STATIC_METHOD_ACCESS = "struts.ognl.allowStaticMethodAccess";
public static final String STRUTS_ACTIonVALIDATORMANAGER = "struts.actionValidatorManager";
public static final String STRUTS_VALUESTACKFACTORY = "struts.valueStackFactory";
public static final String STRUTS_REFLECTIonPROVIDER = "struts.reflectionProvider";
public static final String STRUTS_REFLECTIonCONTEXTFACTORY = "struts.reflectionContextFactory";
public static final String STRUTS_PATTERNMATCHER = "struts.patternMatcher";
public static final String STRUTS_STATIC_CONTENT_LOADER = "struts.staticContentLoader";
public static final String STRUTS_UNKNOWN_HANDLER_MANAGER = "struts.unknownHandlerManager";
public static final String STRUTS_EL_THROW_EXCEPTION = "struts.el.throwExceptionOnFailure";
public static final String STRUTS_LOG_MISSING_PROPERTIES = "struts.ognl.logMissingProperties";
public static final String STRUTS_ENABLE_OGNL_expression_CACHE = "struts.ognl.enableexpressionCache";
public static final String STRUTS_ENABLE_OGNL_eval_expression = "struts.ognl.enableOGNLevalexpression";
public static final String STRUTS_DISABLE_REQUEST_ATTRIBUTE_VALUE_STACK_LOOKUP = "struts.disableRequestAttributevalueStackLookup";
public static final String STRUTS_URL_HELPER = "struts.view.urlHelper";
public static final String STRUTS_CONVERTER_COLLECTION = "struts.converter.collection";
public static final String STRUTS_CONVERTER_ARRAY = "struts.converter.array";
public static final String STRUTS_CONVERTER_DATE = "struts.converter.date";
public static final String STRUTS_CONVERTER_NUMBER = "struts.converter.number";
public static final String STRUTS_CONVERTER_STRING = "struts.converter.string";
public static final String STRUTS_HANDLE_EXCEPTION = "struts.handle.exception";
public static final String STRUTS_CONVERTER_PROPERTIES_PROCESSOR = "struts.converter.properties.processor";
public static final String STRUTS_CONVERTER_FILE_PROCESSOR = "struts.converter.file.processor";
public static final String STRUTS_CONVERTER_ANNOTATION_PROCESSOR = "struts.converter.annotation.processor";
public static final String STRUTS_CONVERTER_CREATOR = "struts.converter.creator";
public static final String STRUTS_CONVERTER_HOLDER = "struts..converter.holder";
public static final String STRUTS_expression_PARSER = "struts.expression.parser";
public static final String STRUTS_ALLOWED_ACTION_NAMES = "struts.allowed.action.names";
public static final String STRUTS_MAPPER_ACTION_PREFIX_ENABLED = "struts.mapper.action.prefix.enabled";
public static final String STRUTS_MAPPER_ACTION_PREFIX_CROSSNAMESPACES = "struts.mapper.action.prefix.crossNamespaces";
public static final String DEFAULT_TEMPLATE_TYPE_CONFIG_KEY = "struts.ui.templateSuffix";
public static final String STRUTS_DISPATCHER_ERROR_HANDLER = "struts.dispatcher.errorHandler";
public static final String STRUTS_EXCLUDED_CLASSES = "struts.excludedClasses";
public static final String STRUTS_EXCLUDED_PACKAGE_NAME_PATTERNS = "struts.excludedPackageNamePatterns";
public static final String STRUTS_EXCLUDED_PATTERNS_CHECKER = "struts.excludedPatterns.checker";
public static final String STRUTS_ACCEPTED_PATTERNS_CHECKER = "struts.acceptedPatterns.checker";
public static final String STRUTS_OVERRIDE_EXCLUDED_PATTERNS = "struts.override.excludedPatterns";
public static final String STRUTS_OVERRIDE_ACCEPTED_PATTERNS = "struts.override.acceptedPatterns";
public static final String STRUTS_ADDITIONAL_EXCLUDED_PATTERNS = "struts.additional.excludedPatterns";
public static final String STRUTS_ADDITIONAL_ACCEPTED_PATTERNS = "struts.additional.acceptedPatterns";
}
其中
public static final String STRUTS_ACTION_EXCLUDE_PATTERN = "struts.action.excludePattern";
保存了不由struts2处理的路径,我们在struts.properties或者struts.xml中配置即可.
struts.action.excludePattern=/dwr/.*,/dwr/test/.*
正则表达式,并非URL匹配地址
总结
以上就是本文关于struts2配置静态资源代码详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:struts2静态资源映射代码示例 Struts2 通过ognl表达式实现投影 Struts2修改上传文件大小限制方法解析 等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持。



