`

在struts2的配置文件中获取项目根目录(转载)

阅读更多

    在工作中多次这种情况:需要再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 配置dtd 自动提示

    首先,你需要找到`struts2-core-2.1.8.1.jar`,提取`struts-2.0.dtd`文件,然后将其复制到项目根目录下的`dtd`文件夹中。接下来,进入Eclipse的`Window` -&gt; `Preferences` -&gt; `Web and XML` -&gt; `XML Catalog`,在...

    在Eclipse中配置Struts2项目

    ### 在Eclipse中配置Struts2项目 #### 一、软件准备 为了在Eclipse中配置Struts2项目,首先需要准备以下软件: 1. **Eclipse + Lomboz 3.2** - 下载地址:[ObjectWeb]...

    eclipse下利用struts2实现文件的上传和下载

    在`struts.xml`配置文件中添加Action配置,定义文件上传和下载的相关动作。 2. **创建Action类**: 创建一个Java类,继承自`org.struts2.actionSupport.ActionSupport`,并添加必要的字段来保存上传的文件信息。...

    struts2 文件上传 测试通过版

    总结,Struts2中的文件上传功能涉及到Action类的编写、配置文件的设定、JSP页面的构造、文件上传处理以及安全措施等多个方面。理解并熟练掌握这些知识点,能够帮助开发者在Struts2项目中有效地实现文件上传功能。

    struts2的实现文件上传的例子

    在Struts2中,可以使用`ServletActionContext.getRequest().getRealPath("/")`获取到应用的根目录,然后结合文件名保存文件。同时,我们需要记录文件的保存路径,以便后续访问。 接下来,我们要将文件路径存入MySQL...

    Struts2 + JasperReports4 + DB2 Demo

    - **WebRoot**:Web应用的根目录,包含了Web应用的静态资源,如HTML、CSS、JavaScript文件,以及Struts2的配置文件和JSP页面。 - **.myeclipse**:MyEclipse的项目特定配置文件夹。 - **.settings**:Eclipse工作...

    struts2文件下载/绝对路径+相对路径

    在Struts2中,文件下载功能是常见的需求,尤其是在处理用户请求获取服务器上的静态或动态资源时。这篇博文(http://blog.csdn.net/love_xiolan/article/details/54945859)提供了关于如何在Struts2中实现文件下载的...

    Struts2示例demo

    在"压缩包子文件的文件名称列表"中,虽然只有一个名字"struts",但通常在Struts2项目中,我们期待看到的文件和目录可能包括以下几个部分: 1. **src/main/java**:包含Action类和其他业务逻辑代码,Action类是处理...

    Struts2初步使用总结

    4. **创建配置文件**:创建`struts.xml`文件,并放置在项目的class根目录下。 **具体步骤如下:** 1. **下载Struts2**:可以从官方网站下载Struts2的最新版本。例如,可以通过以下链接下载:...

    struts2-文件下载

    2. **Action配置**:在Struts2中,你需要创建一个特定的Action来处理文件下载请求。Action通常会有一个返回值,这个返回值将决定视图的路径,对于文件下载,我们通常配置为一个特定的Result类型,如`stream`。 3. *...

    手动添加struts2支持应用jar包

    2. **创建或选择lib目录**:在项目根目录下,如果没有lib目录,需要创建一个。这个lib目录专门用来存放项目的外部依赖库。 3. **解压并复制jar包**:将“struts2工具包”解压,然后将解压后的所有jar文件复制到lib...

    struts2_OGNL Demo

    这个项目旨在帮助开发者理解和学习如何在Struts2中使用OGNL来操纵对象和数据。OGNL是Struts2中一个重要的组件,它允许在视图层和控制层之间传递和操作数据。 首先,我们来看`.classpath`、`.mymetadata`、`.project...

    windows linux 下,获取java项目绝对路径的方法

    windows linux 下,获取java项目绝对路径的方法,struts2设置了struts.multipart.saveDir后会在根目录建立文件夹,这样会涉及linux下的权限问题

    struts2 路径问题

    1. **Action配置**:在Struts2中,Action是业务逻辑的核心组件。每个Action通常对应一个特定的URL,这在struts.xml配置文件中定义。例如,`&lt;action name="myAction" class="com.example.MyAction"&gt;` 将URL `/...

    struts2文件上传教程

    本教程将详细介绍如何在Struts2中实现文件上传。 首先,我们需要在项目的WEB-INF目录下添加两个关键的库文件:`commons-fileupload-1.2.1.jar` 和 `commons-io-1.3.2.jar`。这些文件是Apache Commons项目的一部分,...

    Struts2与FCKeditor的整合.doc

    2. 在web.xml配置文件中,添加ConnectorServlet。参考fckeditor-java-demo-2.6的web.xml配置。如果Struts2的filtermapping配置为"/*",可能与ConnectorServlet冲突,此时需要在struts.xml中添加excludePattern常量来...

    struts2树的编写

    在Struts2中,树形结构的实现是常见的需求,例如用于展示组织架构、文件目录或者数据库层次关系等。本节将深入探讨如何在Struts2中编写和动态输出树形结构。 首先,我们需要理解树形结构的基本概念。树是一种非线性...

    Struts2Demo

    - `struts2demo/` - 项目根目录 - `src/main/java/` - 存放Action类和其他Java源代码 - `src/main/resources/` - 存放资源文件 - `src/main/webapp/` - Web应用目录 - `WEB-INF/` - 存放`web.xml`和`struts.xml`...

    struts 预加载数据demo

    - 在Struts2配置文件`struts.xml`中配置Action,指定请求映射和结果类型。 - 编写前端JavaScript代码,使用Ajax调用预加载数据的Action方法。 - 处理Ajax响应,在前端动态更新页面内容。 9. **优化点**: - ...

Global site tag (gtag.js) - Google Analytics