web.xml中<context-param>的<param-name>是固定的吗?是在哪里定义的? 30
我自己找到了,谢谢大家的关注,现公布答案:log4jConfigLocation定义位置在:org.springframework.web.util.Log4jWebCo...
我自己找到了,谢谢大家的关注,现公布答案:
log4jConfigLocation定义位置在:
org.springframework.web.util.Log4jWebConfigurer.class中。
contextConfigLocation定义位置在:
org.springframework.web.context.ContextLoader.class中。
webAppRootKey的位置及一些常用名称位置在:
org.springframework.web.util.WebUtils.class中。
我不关闭问题的原因是希望大家也知道答案,不知道大家以前想没想过此类问题,我们研究问题不应只是会用,更应该知道其根源,这样才能举一反三,3天后关闭问题! 展开
log4jConfigLocation定义位置在:
org.springframework.web.util.Log4jWebConfigurer.class中。
contextConfigLocation定义位置在:
org.springframework.web.context.ContextLoader.class中。
webAppRootKey的位置及一些常用名称位置在:
org.springframework.web.util.WebUtils.class中。
我不关闭问题的原因是希望大家也知道答案,不知道大家以前想没想过此类问题,我们研究问题不应只是会用,更应该知道其根源,这样才能举一反三,3天后关闭问题! 展开
5个回答
展开全部
谢谢,也许你没明白我的意思,举个例子比如:
<param-name>log4jConfigLocation</param-name>中的log4jConfigLocation,
<param-name>contextConfigLocation</param-name>中的contextConfigLocation,
<param-name>webAppRootKey</param-name>中的webAppRootKey,
这3个名字是在哪里定义的,为什么我搜索整个工程都找不到,为什么改个名就不行了。
看了你的追问。
有可能是你引的了第三方类库。
应该是你所做的项目中有人将一些通用的东西,做成了jar供你们使用。
这样你在工程目录有可能搜不到。
如果你用的是eclipse做开发,将搜索的范围扩大些,(即搜索的文件类型是*.*)
看看能不能搜到。
<param-name>log4jConfigLocation</param-name>中的log4jConfigLocation,
<param-name>contextConfigLocation</param-name>中的contextConfigLocation,
<param-name>webAppRootKey</param-name>中的webAppRootKey,
这3个名字是在哪里定义的,为什么我搜索整个工程都找不到,为什么改个名就不行了。
看了你的追问。
有可能是你引的了第三方类库。
应该是你所做的项目中有人将一些通用的东西,做成了jar供你们使用。
这样你在工程目录有可能搜不到。
如果你用的是eclipse做开发,将搜索的范围扩大些,(即搜索的文件类型是*.*)
看看能不能搜到。
更多追问追答
追问
我就是用*.*搜索的,没有!
就请解释下为什么contextConfigLocation是用来加载Spring配置文件的,为什么改成contextConfigLocation2就不好用了,这个问题真的这么高深吗?
追答
没有什么高深的
contextConfigLocation
classpath:applicationContext.xml
则会去加载相应的xml,而不会去加载/WEB-INF/下的applicationContext.xml。
如果没有指定的话,默认会去/WEB-INF/下加载applicationContext.xml。
contextConfigLocation 这个名字是spring已经定义好的,所以你改成别的就不好用了。
这样说吧,比如你写了一个工程或工具包什么的。为了灵活性,采用了加载配置文件的方式来加载一些信息。这个配置文件可以固定的放在工程的xx/xx/conf这个目录下,可有的人不满了,说我想随意放置这个配置文件,你也要给我加载上。那你怎么办呢?你就告诉他,好的,我给你改,我定义了一个名叫contextConfigLocation,value你随便写,我就读取这个固定的name里的值来加载文件。
就是这样。因为你定义好了名字,换成别的,你读取不到了。
展开全部
在WEB应用程序需要加载的时候,因为整个应用程序导入了很多的Jar包,比如STRUTS2或是SPRING等等。举个例子来说:就用你追问的那个Log4j的例子吧,应用程序加载时,需要指定配置文件的路径,因为路径中指定了日志的格式、类型以及存放位置等等信息,这些都要告诉应用程序,所以,需要指定,log4jConfigLocation就是一个参数名字,这个是你导入jar包中的一个类中的一个参数。jar包中的一个类会指定一个字段private string location="log4jConfigLocation";(举个例子,我也不太记得是那个字段了),这个log4jConfigLocation就是你的参数名,加载时会通过这个参数到WEB.xml中寻找路径的。其他的都一样。如果不知道这个类是那个,可以再问。
追问
jar包中的一个类会指定一个字段private string location="log4jConfigLocation";(举个例子,我也不太记得是那个字段了),这个log4jConfigLocation就是你的参数名
我要的答案就是找出这个实际定义位置,别的我都明白!在哪个jar包?在哪个类里?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<!ELEMENT web-app (icon?, display-name?, description?, distributable?,
context-param*, servlet*, servlet-mapping*, session-config?,
mime-mapping*, welcome-file-list?, error-page*, taglib*,
resource-ref*, security-constraint*, login-config?, security-role*,
env-entry*, ejb-ref*)>
你先要看清楚这个东西先。
以上的是2.2版本的
以下是2.3版本的
<!ELEMENT web-app (icon?, display-name?, description?, distributable?,
context-param*, filter*, filter-mapping*, listener*, servlet*,
servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?,
error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*,
login-config?, security-role*, env-entry*, ejb-ref*, ejb-local-ref*)>
context-param*意思应该是可有可无的。
context-param标签下面有两个属性,都是必须的。
<!ELEMENT context-param (param-name, param-value, description?)>
定义好后,通过相对应的JAVA程序来提取这个里的参数的属性。具体是底层的了,你只要记住是那个JAVA就行了。
context-param*, servlet*, servlet-mapping*, session-config?,
mime-mapping*, welcome-file-list?, error-page*, taglib*,
resource-ref*, security-constraint*, login-config?, security-role*,
env-entry*, ejb-ref*)>
你先要看清楚这个东西先。
以上的是2.2版本的
以下是2.3版本的
<!ELEMENT web-app (icon?, display-name?, description?, distributable?,
context-param*, filter*, filter-mapping*, listener*, servlet*,
servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?,
error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*,
login-config?, security-role*, env-entry*, ejb-ref*, ejb-local-ref*)>
context-param*意思应该是可有可无的。
context-param标签下面有两个属性,都是必须的。
<!ELEMENT context-param (param-name, param-value, description?)>
定义好后,通过相对应的JAVA程序来提取这个里的参数的属性。具体是底层的了,你只要记住是那个JAVA就行了。
追问
谢谢,也许你没明白我的意思,举个例子比如:
log4jConfigLocation中的log4jConfigLocation,
contextConfigLocation中的contextConfigLocation,
webAppRootKey中的webAppRootKey,
这3个名字是在哪里定义的,为什么我搜索整个工程都找不到,为什么改个名就不行了。
追答
???不清楚你的意思。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同楼主,估计回答的人也是不明白问题。。。估计。。。不解释
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
嗯。遇到了和楼主同样的问题,回答的人也是不明白问题。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询