论坛首页 Java企业应用论坛

struts中使用css和js的问题

浏览 24897 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-08-03  
我在开发struts时,发现这样一个很奇怪的问题,不知大家是如何解决的。
首先,有一个jsp:result.jsp,它的html头部如下:
<html>
<head>
<title></title>
<link href="/style/css.css" rel="stylesheet" type="text/css">
<link href="/style/tablesort.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="/js/tablesort.js"></script>
</head>

显然,我想在这个页面中运用style目录下的两个css文件和js目录下的某个js文件,其中,style目录和js目录和jsp页面在同级目录下。
然后,我开启tomcat,在tomcat下,直接进入这个页面,可以发现css和js可以有效的被运用到页面中去。

紧接着,我开始写struts的相关代码,所有的代码都运行正常,并由某个Action实现了某个功能后,将结果返回给result.jsp,后台处理的结果可以正确显示,但是css文件和js文件却无法起效果了,Tomcat服务器上也没有任何出错信息。

总结来说,一个页面,直接看,没有任何问题,但是经过了Action返回出来的,却失去了css和js,不知道是为什么?

大家有没有碰到过这样的问题呢?
   发表时间:2004-08-03  
Action转发后当前路径就编程Action的路径下了,以前我遇到过路径问题。你用绝对路径试试,getContextPath+.......。
0 请登录后投票
   发表时间:2004-08-04  
不知道楼上说的绝对路径是如何使用的,能给一个具体的例子嘛?
0 请登录后投票
   发表时间:2004-08-04  
&lt;link rel=stylesheet href="&lt;%=request.getContextPath()%&gt;/css/public.css" type="text/css"&gt;
如果不行,干脆String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
0 请登录后投票
   发表时间:2004-08-04  
我尝试了楼上的方法,果然可行。在此先谢谢了。

不过我发觉只要经过Action返回的页面都会失去上下文,我即使想从里面link到另外一个页面都要每次&lt;%=request.getContextPath()%&gt;一下。不知道这算不算是struts的遗留问题?或者有谁有什么比较好的解决方法拿出来大家一起讨论讨论。
0 请登录后投票
   发表时间:2004-08-04  
另外,今天发现,可以不用上述解决方法,经过Action以后出来的jsp,如果要在其中引用某个文件,例如,css,js等。不能采用相对路径,应该采用绝对路径
<link href="/XXX/style/css.css" rel="stylesheet" type="text/css"> 
<link href="/XXX/style/tablesort.css" rel="stylesheet" type="text/css"> 



其中,XXX是项目名,XXX前面的/不能漏掉,否则服务器会报错。
0 请登录后投票
   发表时间:2004-08-05  
<link href="<html:rewrite page="/style/css.css"/>" rel="stylesheet" type="text/css"> 
 <link href="<html:rewrite page="/style/tablesort.css"/>" rel="stylesheet" type="text/css"> 



用html:rewrite
0 请登录后投票
   发表时间:2004-08-10  
用html:base
0 请登录后投票
   发表时间:2004-08-27  
目前我是采用rewrite标签的,不知道楼上所说的base标签如何使用?
0 请登录后投票
   发表时间:2004-08-27  
引用

不是吧,我用STRUTS做了好几个项目了,全部都用相对路径,也没有这种情况!你可能没有配你的应用系统的虚拟目录之类,所以指向才会有错.

在程序中解决是个笨办法!


我知道在程序中解决是一个笨办法,不过我不知道你所指的“应用系统的虚拟目录”是如何配的,有什么含义嘛?麻烦赐教,不胜感激
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics