Java Spring中的哪个类负责解析视图中的消息
我正在编写一个SpringMVC应用程序,每个客户端都有一个自定义消息(标签)的用例。每个请求在路径中都有一个唯一的密钥,如:Java Spring中的哪个类负责解析视图中的消息,java,spring,view,thymeleaf,Java,Spring,View,Thymeleaf,我正在编写一个SpringMVC应用程序,每个客户端都有一个自定义消息(标签)的用例。每个请求在路径中都有一个唯一的密钥,如: http://somehost/something/A1B2C3D4/page http://somehost/something/H7CD8E31/page 基于该键,我将从数据库加载自定义消息 我在此处找到一篇文章,该文章在整个应用程序中使用自定义数据库消息: 我稍微修改了此方法,并使用以下代码读取请求: private String getIdFrom
http://somehost/something/A1B2C3D4/page
http://somehost/something/H7CD8E31/page
基于该键,我将从数据库加载自定义消息
我在此处找到一篇文章,该文章在整个应用程序中使用自定义数据库消息:
我稍微修改了此方法,并使用以下代码读取请求:
private String getIdFromRequest() {
ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpServletRequest req = attr.getRequest();
String id=null;
try {
id = ((String) req.getServletPath()).split("/")[1];
} catch(Exception e) {
System.out.println("Request did not have key");
}
return id;
}
然后,我在类的resolveCode
内调用此消息,该类扩展了ReloadableResourceBundleMessageSource
如果一个页面有20条消息,那么这段代码每页运行20次。我的问题是spring在哪里或如何从视图模板读取消息?渲染视图时,它会将视图解析为文件,然后必须在每个视图上循环调用resolveCode
的消息。我想通过扩展循环发生的类,每页调用一次我的getIdFromRequest
方法。我在查看spring源代码,但还没有找到我要查找的内容
谁能给我指出正确的方向吗?另外,如果有更好的方法来解决我的问题,我也希望您能提供一些指导。您的问题中没有提到thymeleaf,但由于标签中有它,我认为您正在使用它 如果是这样的话,因为thymeleaf是一个模板库,所有这些都是在视图渲染时完成的。我认为相关的课程不是spring课程,而是thymeleaf课程 我建议您查看应用程序中使用的视图
org.thymeleaf.spring3.view
。如果您想使用一个专门的子类,您应该首先从同一个包中对viewsolver
进行子类化
如果不使用thymeleaf,那么一般的工作流是相同的:在spring上下文中声明了一个viewsolver
。viewsolver
实例化一个视图
,所有响应的实际构建都发生在视图
中