您的位置:首页 > Web前端 > CSS

如何解决Avtion或者Handle转发后的页面css和js失效问题

2017-01-11 17:11 711 查看
问题:          1.地址栏访问页面index.jsp,css样式显示,js加载;

                       2.页面提交后,经过Handel处理后,转发到index.jsp,css,js失效

项目具体情况:

1.地址栏访问如下图

 



 

2.index.jsp在项目的路径:在WebRoot下的sc中,css样式在sc下

 



 

3.页面引入css的写法

 



 

4.页面提交,表单提交的路径是处理器的路径(<form action="${pageContext.request.contextPath }/login.action" method="post">)

5.提交成功后,Handle处理



6.转发到index.jsp,css,js失效

 



7.视图解析器前缀后缀的配置

 



问题原因分析:1.地址栏访问时,页面引入css样式是相对于页面所在相对路径,就是说从index.jsp所在位置,开始查找css样式,此时可以查找到,所以显示样式

                            2.处理器转发后,由于Handle的命名空间是WebRoot下,所以转发后,页面引入css样式则是从WebRoot开始查找,由于css样式在sc下,所有当然找不到,找不到,所有不显示css样式,js同理

解决办法:将jsp和Handle放在同一目录下即可。

                  1.可使用绝对路径,在jsp页面顶部加入以下标签:

                   


               

                 2.由于使用绝对路径的方法,所有可移植性较差,所以可以使用这种方法

                          此时表单提交的路径是(<form action="${pageContext.request.contextPath }/sc/login.action" method="post">)

                      在处理器中设置访问路径,如下:

                      


这样设置后:再次登录,处理后,页面正常如下:Action的处理原理是相同的,就是在Action的命名空间即namespace中加上/sc即可

                            


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  css