是否有必要指定Spring JstlView解析器在JSP中使用JSTL?

时间:2016-02-25 11:59:37

标签: spring jsp spring-mvc jstl

在Spring中使用<TextBlock Margin="5" VerticalAlignment="Center" HorizontalAlignment="Center" Text="This is a Test. This is a Test. This is a Test. This is a Test." TextWrapping="Wrap"/> 时,是否需要将This is a Test. This is a Test. This is a Test. This is a Test. 指定为 InternalResourceViewResolver使用JSTL?因为没有指定它我仍然能够在JSP中访问JSTL标记(我使用viewClass)而没有任何异常或错误。

3 个答案:

答案 0 :(得分:1)

Spring不知道jstl,因为它不是Spring的一部分,它将作为JSTL的桥梁 从处理程序返回的视图名称将转换为JSP资源(例如:“myView” - &gt;“/ WWE-INF / jsp / myView.jsp”),使用此视图类启用显式JSTL支持< /强>

它还将使用Spring的语言环境和MessageSource公开JSTL特定的请求属性,为JSTL的格式和消息标记指定语言环境和资源包。

从资源文件(.properties文件)

加载属性时
 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
   <property name="basename" value="messages"/>
 </bean>

指定的MessageSource从类路径中的“messages.properties”等文件加载消息。这将自动作为JSTL fmt标签(消息等)将使用的JSTL本地化上下文暴露给视图。

来源:JSTL View

答案 1 :(得分:1)

我看到了答案 InternalResourceViewResolverhere

如果我们使用InternalResourceViewResolver解析视图并且jstl jar在classpath中,则默认设置JstlView类。

答案 2 :(得分:0)

因为没有指定它,我仍然可以访问JSTL标签:

->这是因为InternalResourceViewResolver内部(在构造函数内部实例化期间)检查类路径和spring类加载器中存在的JSTL类(特别是javax.servlet.jsp.jstl.core.Config)是否可以成功加载它。 因此,如果类存在并且可以加载,它将在InternalResourceView上自动使用JstlView。所有这一切仅在其默认构造函数中发生。

因此,您不需要专门告诉使用JstlView。它将被自动采取。 就您而言,它的JSTL config类可在classpath中使用,因此它可以正常工作。