Сначала спросите себя: действительно ли эти константы имеют отношение к Struts2 или только к вашему приложению?
Если позже, это на самом деле не вопрос Struts2, и вы, не доверяете, не хотите связывать управление «константами» со Struts2 (или web.xml), они должны быть доступны из кода вашего приложения вне веб-приложения. (например, из некоторого кода тестирования).
Я понимаю, что вы плохо относитесь к "гаркодированию" констант в некоторых (скажем) Константах классе (со статическими конечными полями), но имейте в виду, что это может быть не такой уж плохой практикой - если они действительно константы, вряд ли будут изменены независимо от вашего Java-кода. Стоит подумать.
Если нет, вам может понадобиться некоторый класс ConstantsManager , который может быть одноэлементным объектом без сохранения состояния (или неким объектом 'Service'), который знает, как загрузить константы, например, из некоторого свойства файл в пути к классам. Как объекты вашего приложения (включая, возможно, некоторые действия Struts2) получают ссылку на этот экземпляр ConstantsManager? В самой простой (и самой грязной) реализации у вас будет реализация шаблона Singleton со статическим методом getInstance (). Более гибким и модным является способ DI / IOC , возможно, с некоторыми контейнерами бобов, как Spring; и Struts2 хорошо подходит для игры с , что . И если вы не знакомы с этими понятиями, они наверняка появятся в ближайшее время из-за проблем, схожих (но менее тривиальных) с доступом к некоторым константам.