java - 基于 User-Agent 的 Change Velocity 模板

标签 java tomcat tomcat7 velocity

我到处寻找解决方案,但似乎该技术不再那么流行,所以似乎也没有任何答案。

我似乎面临着一项看似不可能的任务,即基于 User-Agent 提供不同的 Apache Velocity 模板(.vm 文件)。

遗留 Web 项目中出现的问题是需要以稍微不同的方式为移动用户提供服务。 velocity 的版本是 1.6.2,velocity-tools 的版本是 2.0。

除了我希望在呈现 Velocity 文件之前在服务器端进行 User-Agent 检查外,我在如何执行此操作方面有很大的自由度。

tl;dr

如何根据某些算法标准(即 User-Agent)呈现不同的 .vm 文件?

最佳答案

将用户代理添加到模板

  String userAgent = request.getHeader("User-Agent");
  mapForTemplate.put("userAgent", userAgent);

然后在模板中添加你的逻辑

 #if ($userAgent == "....")
   #include( "chrome.vm" )
 #else
    #include( "firefox.vm" )
 #end

关于java - 基于 User-Agent 的 Change Velocity 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45550861/

相关文章:

spring - WebApplicationInitializer 被重复调用

java - 安装SDX 麻烦org.apache.cocoon.ResourceNotFoundException : No pipeline matched request: index. html

shell - tomcat 在路径 "webapps/"下发布了两个项目

java - POST 请求在 Java 客户端中不起作用,但在 postman 中起作用

java - Hudson 构建的 Eclipse Java 项目缺少 Tomcat 的库

macos - 从我的 mac 访问 tomcat web 服务器时出错

java - 注销后我无法重新登录,继续重定向到 "mysite/remove-group-member.icepush"。为什么?

java - 使用哪个文本组件?

java - libgdx 第一次使用。可运行错误 'Creating Gradle model'

java - 修改此代码的更好方法是什么[重构]