`

SSH2下的路径问题

阅读更多

今天做项目的时候遇到了个很无解的问题,我配置好的struts2 action无论如何不能跳转到result对应的页面。

 

struts2.xml是这么写的:

<package name="timelineUser" extends="struts-default" namespace="/user">
		<action name="user_login" class="com.hywang.timeline.actions.UserAction" method="login">
			<result name="success">/timeline.jsp</result>
			<result name="error">login.jsp</result>
		</action>

 

 

 

 

返回的结果是success,跳转到timline.jsp也是没有问题,不过timeline.jsp就是不能显示出来。开始以为是相对路径绝对路径的问题,于是把package的namespace设置成默认的。再运行,程序可以跳回到timeline.jsp.

 

仔细想了想,也许是前端的问题?于是打开FireDebug开了下跳转之后生成的Html以及相应的前端日志。

我擦,太坑爹了,所有JS包和资源都没有找到。仔细Review了一下JSP,发现前端的引入的JS都是用的相对路径写死的。

比如:

<link rel="stylesheet" href="js/css/style.css" type="text/css" media="screen" />
 

   这个路径js.css.style.css用的是相对路径,可是由于我的action所在的package配置了namespace,所以当action执行请求过后再跳回到timeline.jsp的时候,这个相对路径就变了,JSP会去加载localhost:8080//应用程序名/user/js/css/style.css

 

解决的办法是在jsp里采用绝对路径来加载js和资源,做法如下,在JSP文件里进行如下修改:

 

<% 
     String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
	+ request.getServerName() + ":" + request.getServerPort()
					+ path + "/";
					request.equals("");
%>


	<!-- CSS -->
		<link href="<%=basePath%>js/css/timeline.css" rel="stylesheet">
		<link rel="stylesheet" href="<%=basePath%>js/css/style.css" type="text/css" media="screen" />
  		<link rel="stylesheet" href="<%=basePath%>js/css/fx.slide.css" type="text/css" media="screen" />
  		<link rel="stylesheet" href="<%=basePath%>js/bootstrap/css/bootstrap.min.css">
		<link rel="stylesheet" href="<%=basePath%>js/bootstrap/css/bootstrap-responsive.min.css">
		


 

这样无论从哪里发来的访问JSP的请求,加载JS和资源文件都不会错。

 

分享到:
评论

相关推荐

    ssh得到file全路径

    使用ssh框架已二进制方式上传图片到数据库blob类型。由于IE等浏览器加强安全性不能得到图片上传的全路径。次段代码用于解决全路径问题

    ganymed-ssh2-build210-sources.jar.zip

    下载网站https://repo1.maven.org/maven2/ch/ethz/ganymed/ganymed-ssh2/build210/ 此jar源码文件中包含以下这些类: SCPClient.lass Session.class Connection.clss 等许多文件传输类。 查看源码的方法: 1.把此jar...

    注解实现SSH2图片服务器分离上传下载

    图片服务器分离 博文链接:https://a506764932.iteye.com/blog/1867831

    Windows下搭建基于ssh的git服务器

    安装时需要注意路径问题,尽量将安装路径设置在根目录下,避免空格的出现。 2. copssh的安装 copssh是一个ssh服务器软件,可以从Onlinedown上下载最新的版本。安装时也需要注意路径问题,将安装路径设置在根目录下...

    ganymed-ssh2-bui.jar 和jad.exe

    该jar包中有两个jar包,ganymed-ssh2-bui.jar 和 jad.exe ganymed-ssh2-bui.jar 是java从远程服务器下载文件删除文件必须要的jar包,直接放到系统中即可。 jad.exe 是在eclipse中用java从远程服务器下载文件时会报错...

    ssh2注解配置

    ssh2注解配置,全部是注解配置,struts2和hibernate3和spring2.5全部是注解配置,,访问路径为http://localhost:8080/mytest/student/findAll.action

    VScode用ssh连接虚拟机.docx

    设置完成ssh路径后,VScode左侧导航栏中将出现“Remote Explorer”图标。右键点击图标,选择“Connect to Host”,然后输入虚拟机的主机名和用户名,连接虚拟机。 虚拟机配置 在虚拟机中,需要安装sshd服务,以便...

    SSH2增删改查带分页上传图片(带预览),struts2

    SSH2项目,内含增删改查,带上传图片(带预览),有分页。有登陆。 基于MyEclipse8.5+MySQL+Tomcat6.0 struts2+spring2.5+hibernate3.2做的还有登陆DWR校验 导入项目后,会报错,导入jar包即可。 struts2+spring2.5+...

    ssh2多文件的上传与下载

    文件不建议保存在tomcat服务器下,因为重启服务器上传的文件就被覆盖,建议报存在绝对路径下或上传到ftp 5.文件的删除根据数据库id进行删除(数据库表存放在数据库文件夹中,将data.sql和object.sql导入oracle...

    SSH框架.jar文件下载路径

    这里有Struts,Hibernate,Spring所有版本的jar文件的下载路径

    SSH整合框架注册登录系统

    进入auction路径下,将mysql.sql脚本中的语句导入MySQL数据库。 2. 修改auction\WEB-INF路径下的applicationContext.xml文件,将其中的数据库密码修改为你的数据库密码。 3. 推荐使用Tomcat 5.5系列作为应用...

    java微信支付ssh2框架完整项目代码

    ssh2框架下微信支付代码和实现,不包含获取OAuth网页授权取得openid步骤,查看路径为http://localhost/weixinpay/index?openid=xxxx

    这是一个可以自定义参数的使用Ssh2连接远程服务器的连接池

    这是一个可以自定义参数的使用Ssh2连接远程服务器的连接池,比如目标服务器地址、名称和密码;自定义连接池参;还提供了两个工具类,来向目标服务器的指定路径下上传文件或下载文件

    Rsync+ssh双机同步测试及问题解决

    Rsync+ssh双机同步测试及问题解决 Rsync+ssh双机同步测试及问题解决是指使用Rsync和ssh协议实现双机之间的文件同步和备份。本文将详细介绍如何配置ssh的自动登录、rsync的配置、同步问题和解决方案。 一、配置ssh...

    SSH练习小项目

    2.数据库的路径为:jdbc:mysql:///spring5 3.数据库的账户为:root 4.数据库的密码为:root 如有不同在java Resources/conf/db.properties中自行更改 5.请在数据库中创建名为spring5的数据库,剩下的运行项目后会...

    ssh框架错误总结

    解决方法:关闭MyEclipse,使用Notepad打开项目目录下的.classpath文件,手动修改JAR包的路径为相对路径,并检查JAR包是否正确添加。 三、JUnit测试错误 在使用JUnit/StrutsTest时,可能会遇到java.lang....

    Linux下SSH与SecureCRT密匙完美使用.docx

    Linux 下 SSH 与 SecureCRT 密匙完美使用 在 Linux 系统中,SSH(Secure Shell)是一种常用的远程登录协议,能够提供安全的远程访问方式。OpenSSH 是一个流行的 SSH 服务器软件,提供了基于密钥的认证系统。然而,...

    SSH2完整框架

    SSH2完整框架,继承了sturts2+hibernate+spring的配置文件。以及框架所需要的包。下载,直接导入工程。配置下包路径。以及mysql数据库。就可以启动了。

    ssh实例-在线考试系统

    ssh实例-在线考试系统 部署Web应用请按如下步骤进行: 1. 进入hiberexam路径下,将sql.sql脚本中的语句导入MySql数据库。 2. 修改hiberexam\WEB-INF\classes路径下的appContext文件,将其中的数据库密码修改为你的...

    Eclipse集成ssh环境插件

    把文件拷贝到Eclipse中plugins目录下,打开Eclipse,创建web项目,右键项目弹出菜单会出现一个add ssh framework选项,点击即可进行struts、spring、hibernate的添加 自己写的插件,目前只能添加struts2.1.8,spring...

Global site tag (gtag.js) - Google Analytics