我正在使用一个Web应用程序,其中我的大部分页面都使用apache tile(2.1.2),但是其中一些仅是纯jsps。
我遇到的一个问题是,无论哪种情况,an InternalResourceViewResolver
和a
UrlBasedViewResolver
都将尝试解析该视图,因此无论我使用哪种顺序,它都将在纯JSP页面或切片页面上失败。
这是配置:
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
<property name="order" value="0"/>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
<property name="order" value="1"/>
</bean>
为了更清楚地说明我要执行的操作,我需要具有以下视图状态:
<view-state id="someState" view="/someDir/foo"><!--render foo.jsp -->
<transition on="foo" to="bar"/>
</view-state>
<view-state id="someState" view="something.core"><!--render tile defintion named 'something.core' -->
<transition on="foo" to="bar"/>
</view-state>
有谁知道如何配置东西,以便我可以渲染图块定义和普通的jsps?
如您所说,您不能将它们链接在一起。两者的javadoc都明确指出,它们都必须都在解析程序链的末尾。
我建议如果您确实需要使用这些集合,那么您可以编写一个简单的ViewResolver自定义实现,该实现采用视图名称,并确定要委派给两个“真实”视图解析器中的哪个。假设您可以根据视图名称确定要调用哪个解析器。
因此,您需要像这样定义自定义ViewResolver:
public class MyViewResolver implements ViewResolver {
private ViewResolver tilesResolver;
private ViewResolver jspResolver;
public void setJspResolver(ViewResolver jspResolver) {
this.jspResolver = jspResolver;
}
public void setTilesResolver(ViewResolver tilesResolver) {
this.tilesResolver = tilesResolver;
}
public View resolveViewName(String viewName, Locale locale) throws Exception {
if (isTilesView(viewName)) {
return tilesResolver.resolveViewName(viewName, locale);
} else {
return jspResolver.resolveViewName(viewName, locale);
}
}
private boolean isTilesView(String viewName) {
.....
}
}
您需要实现isTilesView方法来确定要委派给哪个解析器。
在XML配置中,定义这个新的视图解析器,并确保它出现 在 其他视图解析器 之前 。
<bean class="MyViewResolver">
<property name="tilesResolver" ref="tilesViewResolver"/>
<property name="jspResolver" ref="viewResolver"/>
</bean>
问题内容: 我目前正在用Java编写一个大型项目,其中包含许多类,有些类很小,只用很少的方法表示对象。我的主班有一个记录器,它运行良好。我希望所有类只能使用一个记录器(带有一个控制台附加程序)。我试图将对记录器的引用传递给不同的类,但是看起来不正确。此外,有时我在不运行main的情况下在类上运行测试,因此未针对其他类初始化记录器。 我的意思是,如何做到这一点的最佳方法是如何从不同的类登录到一个日志
我有一个使用RabbitMQ(spring-boot-starter-amqp)的Spring应用程序。 我想知道是否可以跨不同的类使用RabbitListener注释。 我目前有两个类:和 <代码>接收器。java: : RabbitMqConfig。java: 当我使用RabbitMQ管理工具向FanoutExchange发布消息时,类中的不会将任何内容记录到控制台。但是,如果此方法在类中,则
我们有一个使用Spring-Vault的应用程序。它使用approle对存储库进行身份验证。我们使用从该操作中获得的令牌来读写机密。和的配置是从属性文件自动配置的。 null 最终结果将是同时具有两个可用的身份验证机制。一些操作将使用应用程序的凭据(AppRole in Vault)执行,其他操作将使用用户的凭据(LDAP in Vault)执行。 我想我可以创建多个类,每个类返回不同的派生。但是
我在java配置中使用spring批处理。(批处理-核心3) 帮我PLZ。
问题内容: 我有一个运行Spring MVC的应用程序。 我需要它来访问我的应用程序中的2个不同的数据库(一个是PostgreSQL,另一个是MySQL数据库)。 如何仅使用批注或application.properties文件进行配置? 问题答案: 这是示例代码,希望对你有所帮助! application.properties DatabaseItemsConfig.java DatabaseU
我想在使用application.properties的项目中使用2个或更多的jdbcTemplate。我尝试了,但遇到了运行时异常。 canNotGetJDBCConnectionException:未能获得JDBC连接;嵌套异常是java.sql.sqlException:无法为在org.springframework.JDBC.datasource.datasourceUtils.getCo
问题内容: 所以我正在一个项目中,我想要一个包含多个数据流的列表视图。我正在寻找的是这样的东西,但是所有这些都需要在一个列表视图中滚动。 我正在接收的数据流来自firebase,并且该变量是firebase集合的实例。我能够为单个流构建一个列表,所以我知道实例是正确的,我不想共享它,因为当前数据库规则处于测试模式。 此代码使我可以从单个流构建单个对象,并且可以按预期工作。 从这里开始,我觉得我有2
问题内容: 是否可以在一个方法上使用多个注释? Like : 问题答案: 有一个值参数,因此你应该能够指定多个值,如下所示: