问题:
程序运行时,js文件找不到对应的action的路径。检查Struts和hibernate文件配置都没有问题,js里面action的路径,感觉也是没有问题的,那么问题出在了哪里?
问题出在jsp里面的basePath和js里面的action路径不配套!
Eclipse 新建 jsp页面里自动生成以下代码:
- <% String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
它的作用相当生成了以下路径:
path=WebName ; (当前站点名称)
basePath= http :// localhost : 8080 /WebName /
当jsp文件的头部写了这样一句话href="<%=basePath %>"时,可以为当前的链接使用绝对路径,这就意味着,文件中所有的路径只需要写成其自webRoot文件下的路径就可以了。如果没有这个,那么文件中的路径都是相对于当前jsp文件的相对路径。
举个例子好了。
一般jsp文件会放在webRoot下的一个自定义文件夹中,文件路径如下:webRoot/example/example.jsp,它所对应的js文件中,action路径应该是/packagename/XXX.action,而如果jsp文件中没有这么一句,action路径就需要写成../packagename/XXX.action。
而之所以出现开头的问题,就在于在jsp文件中没有写href="<%=basePath %”却在js文件中使用了绝对路径。