Struts/Servlet,action转到jsp后,CSS失效,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)
问题:使用struts2,如何处理action的路径?还有,在action转到的jsp中,如何写js,css,图
片的路径?(例如访问http://localhost/project/listUser.action后转到http://localhost/project/user/listUser.jsp,这时候浏览器还是停留在http://localhost/project/addUser.action。这时候jsp原来的图片定位可能就都出错了)
答:action的话,就不需要关心路径问题。我们不使用action的命名空间。因为使用了这样的匹配:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
无论前边是什么路径,struts2只看后边的匹配。
而解决jsp的路径问题,我觉得以下方式就基本完美了(有问题,请各位前辈指出):
第一步:在jsp的head中添加base标签和一段java
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+request.getServerName() + ":" + request.getServerPort()
+ path +"/";
%>
<base href="<%=basePath%>">
第二步:所有的路径使用“半绝对路径”。所谓半绝对路径,是我乱说的。例如:<link rel="stylesheet"
type="text/css"href="style/table.css" />
这种本来是相对路径,就是当前jsp目录下的style目录的table.css。
在我们struts2和配置了base的前提下,这里就会被浏览器解释为http://localhost/project/style/table.css。
也就是说,需要写从项目根目录算起的绝对路径,但去掉开头的"/"
第三步:所有action跳转,form提交写的action路径,都不要带目录位置。只写action名,例如addUser.action。
这样,浏览器就一直停留在http://localhost/project/XXXXX.action 这一层。
另外,我发现另外一个更自然的办法,可以使得原来用相对路径定位的jsp继续可用,不必逐个修改链接:
第一步:在jsp的head中同样添加base,但把getContextPath改为getRequestURI
d
<%
String path = request.getRequestURI();
String basePath = request.getScheme() + "://"
+request.getServerName() + ":" + request.getServerPort()
+ path;
%>
<base href="<%=basePath%>">
注意是request.getRequestURI,这样获取出来的正好就是jsp的绝对路径。
例如浏览器地址栏是:http://localhost:8084/project/listUser.action
base是<base href="http://localhost:8084/project/admin/listUser.jsp">
第二步:jsp页面内,全部使用相对路径访问。
第三步,就不必管action的路径如何了。
这个方法,可以兼容使用action和不使用action两种情况
另外,在struts.xml中配置jsp路径的时候使用项目的绝对路径。例如listUser.jsp在根目录下的admin目录下,就写
<result>/admin/listUser.jsp</result>
Struts/Servlet,action转到jsp后,CSS失效,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)的更多相关文章
- .net网站建设页面提交后css失效的问题
问题描述:.net网站建设在提交后出现css部分失效,如div位置,字体大小. 问题解决:原因是,过去的提示语句我们一律使用了Response.write("<script>al ...
- struts/Servlet,action转到jsp后,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)
问题:使用struts2,如何处理action的路径?还有,在action转到的jsp中,如何写js,css,图 片的路径?(例如访问 http://localhost/project/listUse ...
- 使用内部Servlet转发JSP后页面的JS,CSS等资源引入问题的解决
转载自:https://blog.csdn.net/weixin_44353336/article/details/90677792 问题原因 我们在进行web项目开发过程中,经常会在web页面引入一 ...
- Struts2 JSP中将list,set ,Map传递到Action然后遍历(三十五) - 雲淡風輕 - ITeye技术网站
1.使用Strut2的的集合对象:在jsp初始化action中的list然后提交到action2.使用Struts标签,实现多个用户同时注册(注意属性配置文件)3.pojo package com.s ...
- Struts2第三篇【Action开发方式、通配符、Struts常量、跳转全局视图、action节点默认配置】
前言 上篇Struts博文已经讲解了Struts的开发步骤以及执行流程了-..对Struts的配置文件有了了解-..本博文继续讲解Struts在配置的时候一些值得要学习的细节- Action开发的三种 ...
- IDEA编译项目后,target目录下的jsp文件不更新
tomcat目录说明 先来看一下tomcat的目录: |-bin |-conf |-lib |-logs |-temp |-webapps |-work tomcat 的核心是servlet容器,叫 ...
- struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input
原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1 function dosearch() {2 if ($(&q ...
- SpringMVC控制器 跳转到jsp页面 css img js等文件不起作用 不显示
今天在SpringMVC转发页面的时候发现跳转页面确实成功,但是JS,CSS等静态资源不起作用: 控制层代码: /** * 转发到查看培养方案详情的页面 * @return */ @RequestMa ...
- Struts+Servlet+JDBC网上手机销售系统
项目描述 Hi,大家好,今天给大家分享一个<网上手机销售系统>.本系统一共分为前台和后台两大模块,两个模块之间虽然在表面上是相互独立的,但是在对数据库的访问上是紧密相连的,各个模块访问的是 ...
随机推荐
- Python——查看目录下所有的目录和文件
写程序我们经常会遇到需要遍历某一个目录下的所有文件这个操作,然而python有现成的库,只需要2个循环就可以搞定. import os def all_path(dirname): result = ...
- 在Linux上部署jmeter
一.服务器安装jmeter 1.将安装文件上传到Linux服务器 通过xshell文件上传工具,将文件 “apache-jmeter-5.1.1.tgz”上传 2.在服务器解压缩“apache-jme ...
- Scala 基础(三):Scala语言快速开发入门
1.Scala执行流程分析 2.Scala程序开发注意事项(重点) Scala源文件以 “.scala" 为扩展名. Scala程序的执行入口是main()函数. Scala语言严格区分大小 ...
- celery 错误相关:Monkey-patching not on the main thread; threading.main_thread().join() will hang from a greenlet
/Users/wangpingyang/.pyenv/versions/3.7.2/lib/python3.7/site-packages/httprunner/__init__.py:5: Monk ...
- keras 文本序列的相关api
1.word_tokenizer = Tokenizer(MAX_WORD_NUMS) MAX_WORD_NUMS设置词典的最大值,为一个int型数值 2.word_tokenizer.fit_ ...
- 小白从零开始阿里云部署react项目+node服务接口(三:部署到服务器)
服务器 准备工具 依次安装即可 nginx 安装nginx https://www.runoob.com/linux/nginx-install-setup.html 配置全局nginx命令 http ...
- Burp Suite Repeater Module - 中继模块
目的:节省网页应用分析时间 目标对象:http://10.0.0.15/getboo/login.php 通过调整Request的参数,不断尝试,通过Response查看状态.从而节省在浏览器中操作的 ...
- Python Ethical Hacking - TROJANS Analysis(4)
Adding Icons to Generated Executables Prepare a proper icon file. https://www.iconfinder.com/ Conver ...
- 深入浅出Java并发包—CountDownLauch原理分析 (转载)
转载地址:http://yhjhappy234.blog.163.com/blog/static/3163283220135875759265/ CountDownLauch是Java并发包中的一个同 ...
- 《python编程从入门到实践》2.3字符串
书籍<python编程从入门到实践> 2.3字符串 知识模块 print()函数,函数名称突出为蓝色,输出括号内的变量或者字符创. 变量名的命名:尽量小写字母加下划线并且具有良好的描述性, ...