2012-11-27 50 views
1

我开发了一个使用STRUTS 2.0的基于Web的应用程序,并且我想部署它。我想要部署两个或多个不同的实例,一个用于用户测试,一个用于生产等。我想添加像我的URL一样的命名空间必须是更改部署的Web应用程序的URL

http:\ mysitename \ abc \ development \ login.jsp用于开发环境 http:\ mysitename \ abc \ testing \ login.jsp用于测试环境。

我想创建一个测试项目,一个用于开发项目等等的独立副本。

但我能做些什么就像在URL中添加像开发或测试这样的名称,以便可以很容易地识别哪个环境正在运行。并且我不需要更改我的项目中的图像路径和css文件路径。

喜欢的东西事先编辑我在struts.xml或web.xml中

感谢

回答

1

我想补充的命名空间就像我的网址必须是http:\ mysitename \ ABC \研发\ login.jsp的用于测试环境的开发环境http:\ mysitename \ abc \ testing \ login.jsp。

您可以改为部署不同的应用程序上下文。像http://host/devhttp://host/test/这样做你不需要做任何特别的配置文件。你可以用名字dev.war或test.war(或重命名它)来生成战争,然后部署它。

+1

感谢Ck ...我认为这对我很有用 –

1

如果你做得很好,而且你不会在你的web应用程序代码中对上下文路径进行硬编码,那么就没有这种努力。

下面是我用做:

1 - 写在所有JPS进口JSP。我们称之为taglibs.jsp并定义一个包含动态获取的上下文路径的变量。

... 
<c:set var="ctx" value="${pageContext.request.contextPath}"/> 
... 

2 - 进口taglibs.jsp在你想使用它,就可以使用该变量在jsp:

<%@ include file="/taglibs.jsp"%> 

3 - 使用ctx变量:

同为图像,JavaScript和其他。

因此,这样做,您的应用程序将不依赖于上下文路径,并且需要不同的版本才能更改战争名称。

+1

谢谢jddsantaella ...这也很好。 –