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

2017-01-13 19:22:06来源:CSDN作者:qq_30941091人点击

问题:          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即可

                            

 

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台