web.xml init params多个param-value

时间:2015-01-28 12:20:30

标签: spring java-ee parameters

我想问一下是否可以在

中添加多个参数值
<param-value>

标签?

例如:

<init-param>
        <param-name>contextClass</param-name>
            <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext, org.springframework.web.context.support.XmlWebApplicationContext</param-value>
</init-param>

谢谢!

3 个答案:

答案 0 :(得分:1)

这取决于参数。读取值的代码可以以他们喜欢的任何方式解析它。这意味着你没有办法说&#34;我想传递多个值&#34;没有标准。

Spring并不支持多个类contextClass。此类用于构建应用程序上下文,Java类始终只能具有单个具体类型。如果您没有指定参数,Spring将使用XmlWebApplicationContext作为默认值。如果使用带注释的Java配置,则需要将其替换为org.springframework.web.context.support.AnnotationConfigWebApplicationContext

配置Spring的类需要用contextConfigLocation指定,它采用文件或类名的列表(逗号和/或空格分隔)。

有关详细信息,请参阅文档:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-java-instantiating-container-webhttp://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html

答案 1 :(得分:0)

您所做的是正确的,应该用逗号,作为分隔符

分隔
<context-param>
  <param-name>contextClass</param-name>
  <param-value>ex1.com,ex2.com,.....</param-value>
</context-param>

或者您可以像下面这样放置它们以使其更具可读性

<context-param>
    <param-name>contextClass</param-name>
    <param-value> 
        org.springframework.web.context.support.AnnotationConfigWebApplicationContext
       org.springframework.web.context.support.XmlWebApplicationContext
    </param-value>
</context-param>

应按预期工作

答案 2 :(得分:0)

您可以在<param-value>中使用多个值,但前提是方法可以接受值数组。

示例1:

<init-param>
    <param-name>suffixExclusions</param-name>
    <param-value>.jsp, .ftl</param-value>
</init-param>

它工作正常,因为可以有很多参数。

示例2:

<init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true, false</param-value>
</init-param>

将是一个例外:

 org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.lang.String' to required type 'boolean' for property 'forceEncoding'; nested exception is java.lang.IllegalArgumentException: Invalid boolean value [true, false]
[INFO] [talledLocalContainer]   at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:480)
[INFO] [talledLocalContainer]   at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:512)
[INFO] [talledLocalContainer]   at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1120)

原因方法只需要一个布尔值。

<强> UPD

根据documentation预计参数contextClass

中只有一个类