当前位置: 首页 > 知识库问答 >
问题:

无法在web中获取上下文参数。来自Spring Boot Controller的xml

卫博雅
2023-03-14

我有一个使用Spring Boot web的简单webapp,我有一个web。src/main/webapp/WEB-INF中的xml文件,其中包含如下上下文参数

<context-param>
    <description>Directory containing the configuration files</description>
    <param-name>confDir</param-name>
    <param-value>/opt/rasdaman/etc/</param-value>
</context-param>

在Servlet控制器中,我可以获得Servlet上下文

@Autowired
private ServletContext servletContext;  

但是当我试图获取参数时,它返回null

servletContext.getInitParameter("confDir");

当我试图获得servletContext的真实路径时

servletContext.getRealPath(File.separator);

它回来了

 "..../src/main/webapp/"

如何在web中获取配置变量。xml?

谢谢

共有2个答案

赏航
2023-03-14

多亏了sudakatux,问题是我用jar而不是war部署Spring Boot,然后无法从web读取。xml

按照此处切换到war并正常使用tomcat EE部署

曾航
2023-03-14

我自己也没试过。如果让控制器实现ServletContextAware,我认为可以从以下位置获取上下文参数:http://docs.spring.io/spring/docs/3.0.x/javadoc-api/org/springframework/web/context/ServletContextAware.html

这个想法是

public class MyCoolController implements ServletContextAware {


    @Override
    setServletContext(ServletContext servletContext) {
        String confDir = servletContext.getInitParameter("confDir");
    }
}

试一试

 类似资料:
  • 我正在尝试使用GLFW在mac上获得版本2以上的OpenGL上下文。我的配置是Mavericks(10.9.1)+XCode,我有一个Nvidia Geforce 650M GPU,可能支持OpenGL4.1的完整配置文件。我使用以下代码: 当前glfwCreateWindow函数失败。如果没有任何提示(即没有glfwWindowHint调用),我只能使用OpenGL2.1,glsl版本为1.20

  • 我试图通过JPA执行存储过程。我通过注释设置了存储过程: 该参数存在于数据库中,我正试图按如下方式调用该过程: 当我运行上面的代码时,我得到以下错误: 我卡在了由语句关闭引起的地方。我尝试过将它包装在事务中,但是实体管理器是共享的,我不能在那里创建事务。当我将它包装在事务模板中时,我得到了与上面相同的错误。 以下是正在使用的配置:

  • 我有两个类(实际上是一个基类和许多其他类)。我希望获得子类中的父上下文,而不必每次都填充回< code>super()。它的基本目标是把我的角分量分成多个类。我会试着做一个例子 如您所见,我无法检索<code>这个。canvas并使用它,是否有任何解决方法。我知道我可以将画布传递到方法中,但我更希望像组件中一样使用<code>this<code>关键字来访问全局上下文。 所以基本上我想做的是: 任

  • 本文向大家介绍js获取页面传来参数的方法,包括了js获取页面传来参数的方法的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了通过window.location.search来获取页面传来的参数,经测试是OK的 测试 abcd.html?name=xyz 应该弹出xyz

  • 在上下文参数中加载上下文和在调度程序 Servlet 的初始化参数中加载上下文之间有什么区别? 相对 我的理解是context-参数由上下文侦听器加载,应该只包含中间层bean。Dispatcher Servlet在其init方法中应该加载web层bean。这种理解正确吗?为什么我们分别加载两个东西?

  • 目标-在JBoss EAP 6.4上部署项目war,并为web.xml中的上下文参数提供新值,而无需编辑现有war。 当前状态- 如果我放上所需的网页,战争就会起作用。生成时的xml值。但当我使用默认web时,它失败了。xml 默认war在Tomcat 9上运行良好,因为它在manager控制台gui上具有“XML配置文件路径”选项,可以覆盖默认web的值。xml 我的默认网站。xml- 所需值为