我想问一下是否可以在
中添加多个参数值<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>
谢谢!
答案 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-web和http://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