如何使用Gravitee表达式语言获取首个入口点的URL?
URL Rewriting中获取UI定义入口点URL的解决办法
手动把入口点URL注入EL上下文
先从UI配置的存储位置(比如后台配置类、数据库或者配置文件)读出入口点URL,然后在请求处理的Filter、Servlet或者控制器里把它存入request属性:String entryPointUrl = yourConfigService.getUiEntryPoint(); request.setAttribute("uiEntryPointUrl", entryPointUrl);之后在URL重写规则里就能用
${uiEntryPointUrl}引用这个变量了。借助框架/容器的配置参数
如果是Java EE环境,可在web.xml里配置上下文参数:<context-param> <param-name>uiEntryPointUrl</param-name> <param-value>/your/ui/entry/path</param-value> </context-param>再在Filter或Servlet里读取并放到request属性中;要是用Spring这类框架,直接用
@Value注入配置的URL,再存入Model或者request属性即可。自定义EL函数
写一个工具类直接读取UI入口点URL:public class UrlHelper { public static String getUiEntryPoint() { // 这里替换成实际获取URL的逻辑 return UiConfig.getEntryPointUrl(); } }然后在标签库配置文件里注册这个函数,之后就能在重写规则里通过
${urlHelper:getUiEntryPoint()}调用获取。检查URL重写工具的扩展能力
要是用的是UrlRewriteFilter这类工具,看看它是否支持自定义规则类,在规则类里直接获取入口点URL并应用到重写逻辑里,不用依赖EL变量。
内容的提问来源于stack exchange,提问作者fabien-michel
相关产品推荐
相关产品推荐

