设置Struts2 devMode = false后,/struts /webconsole.html仍在工作

Par*_*and 2 java struts2 appfuse

我在下面设置了以下配置参数struts.xml:

<constant name="struts.devMode" value="false" />
<constant name="struts.configuration.xml.reload" value="true" />
<constant name="struts.i18n.reload" value="false" />
Run Code Online (Sandbox Code Playgroud)

并在struts.properties: struts.devMode=false

webconsole.html页面仍在加载.如何解决这个问题?

mes*_*azs 5

devMode属性与此无关webconsole,它只做以下事情:

  • 启用后,Struts 2将在每次请求时重新加载资源包(这意味着您可以更改.properties文件,保存文件,并查看下一个请求中反映的更改).
  • 它还将struts.xml在每个请求上重新加载xml配置文件(),验证文件等.这对于测试或微调配置非常有用,无需每次都重新部署应用程序.
  • 第三,也许这个设置不太广为人知,因此也是一个混乱的来源:它会提高调试水平或通常可忽略不计的问题.例如:当您提交无法在某个操作上设置的字段时,'someUnknownField'通常会忽略该字段.但是,当您处于开发模式时,将抛出异常,告知您提交了无效字段.这对于调试或测试大型表单非常有用,但如果您依赖请求中未在操作上设置但直接在视图层中使用的参数,也会造成混淆(警告:不良做法,你应该始终验证来自网络的输入).

我假设你是从这里来的,我的建议是:你甚至不应该在生产机器上部署这个组件.