今天做项目的时候遇到了个很无解的问题,我配置好的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(Secure Shell)协议是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。...在项目中使用时,需将`ganymed-ssh2-build210.jar`添加至类路径,并根据需求调用相应的API进行操作。
标题中的“注解实现SSH2图片服务器分离上传下载”指的是在软件开发中,利用Java的注解机制来实现与SSH2(Secure Shell v2)协议相结合的图片服务器功能。SSH2是一种广泛使用的网络协议,主要用于安全地进行远程登录...
总之,“ssh2开发jar包”是Java开发SSH2应用的关键组件,提供了连接、身份验证、文件传输等功能,使得开发者能够在不暴露于网络风险的情况下进行远程操作。正确理解和使用这些jar包,能够有效提升Java应用程序的安全...
在Windows环境下进行SSH2开发,首先需要搭建一个完整的开发环境,包括安装必要的软件库和配置编译环境。本文主要介绍了如何在Visual Studio 2008下编译和配置SSH2所需的依赖库——OpenSSL和ZLIB,以及如何编译SSH2库...
SSH2(Secure Shell 2)是一种广泛用于网络服务的安全协议,...这个汇总包中的jar文件是经过调试和测试的,可以确保在各种场景下的稳定运行,对于需要在Java应用中实现SSH2功能的开发者来说,是一个非常有价值的资源。
使用ssh框架已二进制方式上传图片到数据库blob类型。由于IE等浏览器加强安全性不能得到图片上传的全路径。次段代码用于解决全路径问题
1. 添加SSH2相关库到项目的类路径:包括Struts2、Spring和Hibernate的JAR文件,以及其他必要的依赖。 2. 配置web.xml:设置过滤器和监听器,使Struts2和Spring能够初始化。 3. 编写Struts2的配置文件(struts.xml)...
SSH2是SSH协议的第二个主要版本,相比SSH1,它引入了更多的安全特性,比如更强大的加密算法和更好的密钥交换机制。 SSH2主要包含以下几个核心概念: 1. **身份验证**:SSH2支持多种身份验证方法,包括基于口令的...
SSH2(Secure Shell 2)是一种广泛用于网络服务的安全协议,尤其在远程登录、文件传输等领域。它提供了安全的数据加密和身份验证功能,确保数据在传输过程中不被窃取或篡改。在这个“开发SSH2的完整jar包”中,包含...
描述中的"oracle与ssh2技术的整合,简洁易懂"意味着这份资料可能详细介绍了如何将这两种技术结合在一起,为用户提供了一个简单明了的学习路径。这通常涉及到配置SSH2客户端(如OpenSSH或PuTTY),设置服务器上的SSH...
- **安全性和兼容性**:使用SSH2时需要注意其安全性和与其他系统的兼容性问题。例如,现代SSH客户端可能不再支持较旧版本的加密算法,因此建议使用最新的SSH版本以确保最佳的安全性和兼容性。 - **远程连接示例**:...
SSH2(Secure Shell 2)是一种网络协议,用于在不安全的网络环境中提供安全的远程登录和其他服务。本文将详细讲解SSH2的搭建过程,包括SSH2配置步骤、JDK的安装与配置、MyEclipse集成环境的设置以及Tomcat服务器的...
将下载的SSH2相关jar包添加到项目的lib目录,意味着这些库文件将会被包含在项目的类路径中,使得项目可以调用SSH2的相关功能。 在描述中提到了一个博客链接,这可能是一个开发者分享的关于如何解决SSH2整合过程中...
在SSH2框架下实现单文件上传,首先需要理解SSH2的工作原理。SSH2建立了一个加密的连接,确保数据在传输过程中不被窃取或篡改。它通常使用公钥/私钥对进行身份验证,提供比传统的用户名和密码更高级别的安全性。在...
SSH2(Secure Shell 2)框架是用于在不安全网络上提供安全远程登录和其他服务的协议。...博客作者可能还会分享一些最佳实践和常见问题解决方案,以帮助开发者避免常见陷阱,顺利进行SSH2的整合工作。
SSH2(Secure Shell 2)是一种安全协议,用于在不安全的网络上提供加密通信,尤其是在远程登录和其他网络服务时。SSH2不仅提供了数据加密,还支持身份验证、密钥交换等功能,确保了数据传输的安全性。在IT领域,SSH2...
4. **PJSIP**:虽然这不是一个标准的SSH2库,但在某些情况下,如果你需要在Java中实现语音或视频通话,可能会用到PJSIP,它支持通过SSH进行安全传输。对应的jar文件可能是`pjsip.jar`。 5. **JCraft**:另一个SSH库...
开发者解压后,需要将"lib"目录下的所有jar包添加到项目的类路径(ClassPath)中,以便在编译和运行时正确加载和使用SSH2的相关功能。 总的来说,这个压缩包是SSH2框架开发的一个便捷工具,包含了所有必需的jar包,...
- **压缩功能**: SSH2协议支持数据压缩,可以提高文件传输速度,尤其是在网络带宽有限的情况下。 - **端口转发**: SSH2允许用户通过安全的隧道转发任意端口,从而安全地访问受限制的服务。 四、应用实例 1. **开发...