在工作中多次这种情况:需要再struts2的配置文件中获取项目的根路径。比如,某个action的result是a.jsp,他是一个信息显示的页面,显示信息5秒之后它会跳转到本项目中的另外一个页面,这个a.jsp需要一个GET参数就是本项目根目录下的一个页面b.jsp,这样a.jsp在显示完信息后会跳转到b.jsp,如果你直接把result写成如下这样:
<result name="success">
/a.jsp?url=/b.jsp
</result>
<result name="success">
/a.jsp?url=/b.jsp
</result>
那么你会发现,a.jsp5秒之后跳转的url为/b.jsp,而并不是诸如:http://localhost:8080/b.jsp,也就是说,传递给a.jsp的url是个绝对参数,而不是相对参数。
解决办法就是在/b.jsp前面加上本项目的根目录,但是如何在struts2的配置文件中获取本项目的根目录呢?多次google未果,于是自己研究。struts2 的配置文件可以使用ognl表达式,在配置文件中使用ognl表达式的方法就是在 ${ } 的大括号之间放入ognl的变量,比如${request}就可以在struts.xml配置文件中获取request,既然可以获取request了,那么获取根目录也就简单了,这样:${request.contextPath}。于是上面的例子就可以改为:
<result name="success">
/a.jsp?url=${request.contextPath}/b.jsp
</result>
出处:http://blog.csdn.net/hisenseme/archive/2010/08/30/5849843.aspx
分享到:
相关推荐
首先,你需要找到`struts2-core-2.1.8.1.jar`,提取`struts-2.0.dtd`文件,然后将其复制到项目根目录下的`dtd`文件夹中。接下来,进入Eclipse的`Window` -> `Preferences` -> `Web and XML` -> `XML Catalog`,在...
### 在Eclipse中配置Struts2项目 #### 一、软件准备 为了在Eclipse中配置Struts2项目,首先需要准备以下软件: 1. **Eclipse + Lomboz 3.2** - 下载地址:[ObjectWeb]...
在`struts.xml`配置文件中添加Action配置,定义文件上传和下载的相关动作。 2. **创建Action类**: 创建一个Java类,继承自`org.struts2.actionSupport.ActionSupport`,并添加必要的字段来保存上传的文件信息。...
总结,Struts2中的文件上传功能涉及到Action类的编写、配置文件的设定、JSP页面的构造、文件上传处理以及安全措施等多个方面。理解并熟练掌握这些知识点,能够帮助开发者在Struts2项目中有效地实现文件上传功能。
在Struts2中,可以使用`ServletActionContext.getRequest().getRealPath("/")`获取到应用的根目录,然后结合文件名保存文件。同时,我们需要记录文件的保存路径,以便后续访问。 接下来,我们要将文件路径存入MySQL...
- **WebRoot**:Web应用的根目录,包含了Web应用的静态资源,如HTML、CSS、JavaScript文件,以及Struts2的配置文件和JSP页面。 - **.myeclipse**:MyEclipse的项目特定配置文件夹。 - **.settings**:Eclipse工作...
在Struts2中,文件下载功能是常见的需求,尤其是在处理用户请求获取服务器上的静态或动态资源时。这篇博文(http://blog.csdn.net/love_xiolan/article/details/54945859)提供了关于如何在Struts2中实现文件下载的...
在"压缩包子文件的文件名称列表"中,虽然只有一个名字"struts",但通常在Struts2项目中,我们期待看到的文件和目录可能包括以下几个部分: 1. **src/main/java**:包含Action类和其他业务逻辑代码,Action类是处理...
4. **创建配置文件**:创建`struts.xml`文件,并放置在项目的class根目录下。 **具体步骤如下:** 1. **下载Struts2**:可以从官方网站下载Struts2的最新版本。例如,可以通过以下链接下载:...
2. **Action配置**:在Struts2中,你需要创建一个特定的Action来处理文件下载请求。Action通常会有一个返回值,这个返回值将决定视图的路径,对于文件下载,我们通常配置为一个特定的Result类型,如`stream`。 3. *...
2. **创建或选择lib目录**:在项目根目录下,如果没有lib目录,需要创建一个。这个lib目录专门用来存放项目的外部依赖库。 3. **解压并复制jar包**:将“struts2工具包”解压,然后将解压后的所有jar文件复制到lib...
这个项目旨在帮助开发者理解和学习如何在Struts2中使用OGNL来操纵对象和数据。OGNL是Struts2中一个重要的组件,它允许在视图层和控制层之间传递和操作数据。 首先,我们来看`.classpath`、`.mymetadata`、`.project...
windows linux 下,获取java项目绝对路径的方法,struts2设置了struts.multipart.saveDir后会在根目录建立文件夹,这样会涉及linux下的权限问题
1. **Action配置**:在Struts2中,Action是业务逻辑的核心组件。每个Action通常对应一个特定的URL,这在struts.xml配置文件中定义。例如,`<action name="myAction" class="com.example.MyAction">` 将URL `/...
本教程将详细介绍如何在Struts2中实现文件上传。 首先,我们需要在项目的WEB-INF目录下添加两个关键的库文件:`commons-fileupload-1.2.1.jar` 和 `commons-io-1.3.2.jar`。这些文件是Apache Commons项目的一部分,...
2. 在web.xml配置文件中,添加ConnectorServlet。参考fckeditor-java-demo-2.6的web.xml配置。如果Struts2的filtermapping配置为"/*",可能与ConnectorServlet冲突,此时需要在struts.xml中添加excludePattern常量来...
在Struts2中,树形结构的实现是常见的需求,例如用于展示组织架构、文件目录或者数据库层次关系等。本节将深入探讨如何在Struts2中编写和动态输出树形结构。 首先,我们需要理解树形结构的基本概念。树是一种非线性...
- `struts2demo/` - 项目根目录 - `src/main/java/` - 存放Action类和其他Java源代码 - `src/main/resources/` - 存放资源文件 - `src/main/webapp/` - Web应用目录 - `WEB-INF/` - 存放`web.xml`和`struts.xml`...
- 在Struts2配置文件`struts.xml`中配置Action,指定请求映射和结果类型。 - 编写前端JavaScript代码,使用Ajax调用预加载数据的Action方法。 - 处理Ajax响应,在前端动态更新页面内容。 9. **优化点**: - ...