gpt4 book ai didi

java - 根据请求参数渲染不同的图 block (Spring 框架和图 block )

转载 作者:行者123 更新时间:2023-12-01 16:05:58 24 4
gpt4 key购买 nike

我需要更改一些现有的应用程序以根据某些请求参数呈现不同的 View 。该应用程序使用图 block 。我以前从未使用过瓷砖,需要一些提示如何去做。

图 block 定义如下:

<bean id="viewResolver"class="org.springframework.web.servlet.view.UrlBasedViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" /></bean>

假设我有welcome.tile,如果请求中有一些参数,例如。 id=xyz 和图 block xyz.welcome.tile 存在我想渲染这个,如果它不存在,我想渲染默认值。我的 Controller 返回 welcome.tile 作为 View ,但我不想向 Controller 添加代码,我想尽可能简单地执行此操作。

我的想法是以某种方式拦截 View 分辨率,以便它会根据请求检查参数,然后验证带有参数前缀的给定图 block 是否存在,如果存在,则将使用它。但我不知道从哪里开始。

这是一些旧代码,因此不幸的是我无法承受太多更改。

提前致谢康拉德

最佳答案

我认为您可以使用读取您希望的请求参数并使用此信息构建 View 名称的版本来扩展 UrlBasedViewResolver 。知道 ViewResolver 接口(interface)不提供 HttpRequest 实例,您可以使用 org.springframework.web.util.RequestHolder.currentRequest() 静态方法获取它。

这样如果你请求的是(例如)/mvc/dailyReport/riticStuff,viewName 可以是 dailyReport.riticStuff

如果您请求的是/mvc/dailyReport/riticStuff?printable,viewName 可以解析为 dailyReport.riticStuff.printable,其中这是 dailyReport.riticStuff View 的可打印版本。

希望对你有帮助

关于java - 根据请求参数渲染不同的图 block (Spring 框架和图 block ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2607321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com