struts中的路径用的是action路径,而不是Jsp路径,所以用的时候尽量不要用相对路径,而是用绝对路径
1、index.jsp文件
<body>
<a href="path/path.action">路径问题说明</a>
</body>
2、path.jsp文件
<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="<%=basePath%>" />
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body>
struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。<br />
<a href="index.jsp">index.jsp</a>
<br />
虽然可以用redirect方式解决,但redirect方式并非必要。
<br />
解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径)
<br />
或者使用myeclipse经常用的,指定basePath
</body>
</html>
注意,这里使用base来制定文件的绝对路径
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
getContextPath()根据当前的内容得到路径,getScheme()得到的是http,getServerName()得到的是127.0.0.1,即IP地址,getServerPort()得到当前端口号8080,path得到当前项目所在的路径,也就是Struts2_0400_Path
最后bastPath其实是http://127.0.0.1:8080/Struts2_0400_Path/
3、PathAction.java文件(在包package org.hualang.strutsaction下)
package org.hualang.strutsaction;
public class PathAction {
public String execute() {
return "path";
}
}
4、struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="path" extends="struts-default" namespace="/path">
<action name="path" class="org.hualang.strutsaction.PathAction">
<result name="path">/path.jsp</result>
</action>
</package>
</struts>
运行结果:
当点击路径问题后会跳转到
当点击index.jsp会跳转到
- 大小: 8.1 KB
- 大小: 13.6 KB
分享到:
相关推荐
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
标题中的“【张冰Struts2学习笔记】0103_Path与绝对路径”表明了这篇笔记主要讨论的是Struts2框架中关于Path和绝对路径的概念及其应用。Struts2是一个流行的Java Web开发框架,它提供了强大的MVC(模型-视图-控制器...
【张冰Struts2学习笔记】0102_第一个Struts2实例 在Java Web开发领域,Struts2框架是十分重要的MVC(模型-视图-控制器)架构之一,它极大地简化了Web应用程序的开发流程。这篇学习笔记将带你入门Struts2,通过创建...
在Struts2框架中,路径问题是一个常见的困扰开发者的问题,特别是在处理Action与JSP之间的交互时。本篇文章将深入探讨这个问题,并提供解决方案。 首先,理解Struts2中的路径问题的本质至关重要。在Struts2框架中,...
### Struts 1.2 学习笔记:深入理解 Struts 工作流程 #### Struts 概述 Struts 是一个开源的 MVC(Model-View-Controller)框架,用于简化 Java Web 应用程序的开发。Struts 1.2 版本是基于 Servlet 的 MVC 实现,...
关于Action路径(Action_Path),笔记指出Struts2的路径问题与JSP路径不同。在JSP中,路径问题可能导致资源定位错误,因此建议使用绝对路径,尤其是在涉及到动态生成的链接时。`<base>`标签在此场景下特别有用,它...
### Struts学习笔记详解 #### 一、Struts框架概览与编码设置 在学习Struts框架时,首要关注的是其编码配置。如代码片段所示,`struts.i18n.encoding`常量被设置为`UTF-8`,这确保了国际化(I18N)资源文件的正确...
在本篇“Struts2学习笔记十三”中,我们将深入探讨Struts2如何处理文件上传和下载,这是Web开发中常见的需求。 文件上传在Web应用中广泛用于让用户提交图片、文档或其他类型的数据。Struts2提供了一个名为`...
在实际开发中,还需要考虑错误处理、安全性(如防止路径遍历攻击)以及性能优化等问题。同时,理解Struts2的拦截器机制和结果类型对于深入掌握这一功能至关重要。通过这种方式,你可以构建出能够处理复杂文件操作的...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...
博客文章"Struts学习笔记之ActionForm - xiaodaoxiaodao——蓝小刀的自言自语 - BlogJava.mht"可能包含更深入的实践示例和经验分享,包括如何处理ActionForm的生命周期、动态Form Beans、国际化等话题。通过阅读这篇...
本学习笔记和测试源代码着重关注的是Struts2中的文件上传功能,这是一个在Web应用中常见的需求,比如用户在注册时上传头像或者企业上传产品资料等。 文件上传是通过HTTP协议的POST请求实现的,Struts2提供了一套...
- `path`属性定义了URL路径,即客户端请求的URL路径。 - `type`属性指定了处理该请求的Action类。 - `name`属性定义了表单Bean的名称。 - `scope`属性指定了表单Bean的作用域。 - `input`属性定义了请求处理失败时的...
在本入门笔记中,我们将逐步了解如何开始使用Struts1。 首先,Struts1的核心组件包括前端控制器ActionServlet,它作为整个应用的入口点,负责处理所有的HTTP请求。ActionServlet会解析请求,根据配置文件(通常位于...
在达内的培训课程中,学员会深入学习Struts的核心概念和实践应用,以提升其在企业级开发中的技能。 **一、Struts框架基础** Struts框架的出现是为了克服JSP和Servlet在大型项目中的管理困难,提供了一种更加结构化...