在我的应用程序,我用的是Struts2的,和我创建了一个基础动作上悬而未决的路径问题:基本路径在JSP
class BaseAction{
private String path;
static{
HttpServletRequest request = ServletActionContext.getRequest(); path=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();+"/";
}
}
然后,所有其他行动延长这一baseaction。
在我的jsp页面,我添加路径为基础:
xx.jsp:
....
<head>
<base href="<s:property value='path'/>">
<script ... src="res/test.js" />
</head>
它运作良好,在我自己的机器。
http://localhost:8080/app 的test.js canbe通过找到的 “http://本地主机:8080 /应用/ RES/test.js”
但是当其他人试图访问我的应用程序,他们使用:
现在,浏览器仍然会尝试通过 下载test.js的 “http://本地主机:8080 /应用/ RES/test.js”
当然,它不能得到它。真正的道路应该是: http://192.168.x.x:8080/app/res/test.js
因此,“路径”是在行动中的硬代码,任何想法来解决这个问题?
您可以验证的基本href是正确的HTML这些其他人看到了什么?从静态初始化程序访问Servlet上下文或请求看起来很麻烦。 – Thilo 2011-03-30 11:11:20
...正如从静态初始化器中设置实例变量一样。那如何编译? – Thilo 2011-03-30 11:12:56
在其他人看到的HTML页面中,基础href是stil“http:// localhost:8080/app” – hguser 2011-03-30 12:16:37