Issue 1:
Keith Donald opened SPR-7543 and commented

It'd be nice instead of having to do this:

@RequestMapping(value="/edit/{slug}", method=RequestMethod.GET)
public String getEditAppForm(@PathVariable String slug, Account account, Model model) {
model.addAttribute(connectedAppRepository.getAppForm(account.getId(), slug));
model.addAttribute("slug", slug);
return "develop/apps/edit";
}

... and using ${slug} in my template to access the @PathVariable value, I could simply do:

@RequestMapping(value="/edit/{slug}", method=RequestMethod.GET)
public String getEditAppForm(@PathVariable String slug, Account account, Model model) {
model.addAttribute(connectedAppRepository.getAppForm(account.getId(), slug));
return "develop/apps/edit";
}

and reference something automatically exposed like ${pathVars.slug} in my template.

Affects: 3.0.4

Issue Links:

#11152 Access URI template variables in view ("duplicates")

#13391 Need a way to disable behavior added in "Automatically expose @PathVariables in the Model" SPR-7543

#13130 Use AbstractView instead of HandlerMethodArgumentResolver to add @PathVariable values to the model

Referenced from: commits ed9d9a4

Issue 2:
Simon Barbey opened SPR-5411 and commented

After upgrading Apache Tiles from version 2.1.0 to 2.1.1, the integration with Spring no longer works.

The class TilesConfigurer fails to initialize properly the Tiles environment, as visible in the stack trace :

java.lang.UnsupportedOperationException: Class org.apache.tiles.web.util.ServletContextAdapter

not recognized a TilesApplicationContext

at org.apache.tiles.factory.TilesContainerFactory.createContainer(TilesContainerFactory.java:219)

at org.springframework.web.servlet.view.tiles2.TilesConfigurer.createTilesContainer(TilesConfigurer.java:214)

at org.springframework.web.servlet.view.tiles2.TilesConfigurer.afterPropertiesSet(TilesConfigurer.java:201)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)

at java.security.AccessController.doPrivileged(Native Method)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)

at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:402)

at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:316)

at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:282)

at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:126)

at javax.servlet.GenericServlet.init(GenericServlet.java:69)

at com.caucho.server.dispatch.ServletConfigImpl.createServletImpl(ServletConfigImpl.java:646)

at com.caucho.server.dispatch.ServletConfigImpl.createServlet(ServletConfigImpl.java:587)

at com.caucho.server.dispatch.ServletManager.init(ServletManager.java:154)

at com.caucho.server.webapp.Application.start(Application.java:1654)

at com.caucho.server.deploy.DeployController.startImpl(DeployController.java:621)

at com.caucho.server.deploy.DeployController.restartImpl(DeployController.java:584)

at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.request(StartAutoRedeployAutoStrategy.java:125)

at com.caucho.server.deploy.DeployController.request(DeployController.java:554)

at com.caucho.server.webapp.ApplicationContainer.getApplication(ApplicationContainer.java:885)

at com.caucho.server.webapp.ApplicationContainer.buildInvocation(ApplicationContainer.java:725)

at com.caucho.server.host.Host.buildInvocation(Host.java:459)

at com.caucho.server.host.HostContainer.buildInvocation(HostContainer.java:353)

at com.caucho.server.resin.ServletServer.buildInvocation(ServletServer.java:653)

at com.caucho.server.dispatch.DispatchServer.buildInvocation(DispatchServer.java:198)

at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:415)

at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)

at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)

Affects: 2.5.6

Reference URL: http://forum.springsource.org/showthread.php?t=65907

Attachments:

CustomSpringTilesConfigurer.java (4.97 kB)

CustomSpringTilesConfigurer.java (3.85 kB)

CustomSpringTilesConfigurer.java (2.86 kB)

CustomTilesContainerFactory.java (9.96 kB)

CustomTilesContainerFactory.java (8.42 kB)

CustomTilesContainerFactory.java (6.51 kB)

CustomTilesListener.java (1.64 kB)

CustomVelocityTilesView.java (1.79 kB)

SpringTilesConfigurer.java (10.97 kB)

TilesConfigurer.java (10.63 kB)

Issue Links:

#10280 Support Tiles 2.2 for Velocity and FreeMarker purposes

SWF-1077 Infinite loop when using SWF + Ajax ("supersedes")

Referenced from: commits 2b13afd

11 votes, 21 watchers