Struts2学习笔记(2)-路径问题解决

  在struts2中的路径问题是根据Action的路径而不是JSP的路径确定的,所以尽量不要使用相对路径,使用相对路径会让路径问题变得很繁琐很麻烦,有的时候一个细微的变动会导致你需要大的改动。

  解决方法其实也很简单:即统一使用绝对路径。

  在jsp中可以通过request.getContextRoot的方式获得webapp的绝对路径:

代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
<% 
    String path = request.getContextPath(); 
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%>

  以上方式很明确,path字符串获得是webapp的路径,然后basePath获得的是整个项目的根路径(注:已经含有了最后的“/”)

在使用时只需调用basePath即可(以跳转到index为说明):

代码如下:

<a href="<%=basePath %>index.jsp">index.jsp</a>

其中<a></a>代表的是超链接,这样就可以跳转到xxxxx/index了(前提是你的namespace和Action的设置要配置好)。

以上就是Struts2中路径问题的全部内容,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Struts2学习笔记(5)-参数传递方法

    参数传递即将参数传输到程序后台中,后台可能做一些处理,然后再将内容存入数据库之类嗒! 参数传递的方法较多,一一说明如下. 1.Action中直接参数法 有如下的index.jsp文件 复制代码 代码如下: <?xml version="1.0" encoding="GB18030" ?>  <%@ page language="java" contentType="text/html; charset=GB18030&

  • Struts2学习笔记(1)-入门教程

    什么是Structs2?它就是在Struts1的基础上演化而来的,是一种MVC模式的框架,其实它的功能很简单,就是将View和逻辑处理层分开.本人才疏学浅,以前都是用Spring做项目,由于要毕业,所以需要进行转行(暂且这么说吧),公司都是用的Structs框架,木有办法,从头开始学吧! 所需软件-Eclipse.TomCat7.0.Struts-2.3.1.2(源码自己下载),下面以具体小项目来说明. 首先是Struts2的工作原理:首先Tomcat对用户所输入的URL进行解析,将其中的项目名

  • Struts2学习笔记(4)-通配符的使用

    通配符是在struts2配置中非常常用的一种配置方式,在程序开发过程中要遵循"约定优于配置"的原则,在这种原则下,约定的结果如果比较合适的话,就会大大减少配置的数量,使得配置变得非常简单,方便. 下面以例子来做下说明: 1.由如此的一个struts.xml配置文件: 复制代码 代码如下: <?xml version="1.0" encoding="UTF-8" ?>  <!DOCTYPE struts PUBLIC      &

  • Struts2学习笔记(9)-Result配置全局结果集

    Result可以设定全局结果集,如: <struts> <constant name="struts.devMode" value="true" /> <package name="user" namespace="/user" extends="struts-default"> <global-results> <result name="m

  • Struts2学习笔记(3)-DMI动态调用方式

    什么是DMI?DMI即所谓的动态方法调用. Action在执行的时候并不一定要执行execute方法,可以在配置文件中配置Action的时候用method=来指定执行哪个方法,也可以在url地址中动态指定(动态方法调用DMI). 第一种方式,在struts.xml中对Action添加method: 复制代码 代码如下: <struts>     <constant name="struts.devMode" value="true" />  

  • 在Struts2中的结果集类型

    1.每个action方法都返回一个String类型的值,struts一次请求返回什么值是由这个值确定的. 2.在配置文件中,每一个action元素的配置都必须有result元素,每一个result对应一个action的返回值. 3.Result有两个属性: name:结果的名字,和action中的返回值一样,默认值为success; type:响应结果类型,默认值为dispatcher. 在下面找到struts-default.xml文件中,如下面所示: 说明: 1.从上述可以看出总共10种类型

  • Struts2学习笔记(8)-Result常用类型

    Result也是Struts2比较重要的一部分,在Result的配置中常用的有四种类型:dispatcher.redirect.chain和redirectAction,在这四种中又以前两种最为常见. 例: <struts> <constant name="struts.devMode" value="true" /> <package name="resultTypes" namespace="/r&qu

  • Struts2学习笔记(7)-访问Web元素

    常用的Web元素有:request.session.application等,而我们一般使用session较多,Struts2如何访问web元素呢?这个是非常重要的内容,因为它能完成程序后台和用户的数据交互,下面以注册为例演示其过程: 1.index.jsp文件 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

  • Struts2学习笔记(6)-简单的数据校验

    数据校验是在项目开发中不可缺少的一部分,用户登录时.密码验证时都需要,当然要做的首先是获得用户输入的内容,然后对内容进行验证,一般都是从数据库中读出然后校验,如果错误则显示提示信息,正确则进入用户主界面. 下面用一个简单小例子来说明下步骤: 1.index的表单 复制代码 代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8"      pageEncoding="U

  • Struts2学习笔记(2)-路径问题解决

    在struts2中的路径问题是根据Action的路径而不是JSP的路径确定的,所以尽量不要使用相对路径,使用相对路径会让路径问题变得很繁琐很麻烦,有的时候一个细微的变动会导致你需要大的改动. 解决方法其实也很简单:即统一使用绝对路径. 在jsp中可以通过request.getContextRoot的方式获得webapp的绝对路径: 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEnco

  • java struts2学习笔记之线程安全

    在说struts2的线程安全之前,先说一下,什么是线程安全?这是一个网友讲的. 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码.如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的. 就是说,在一个进程中有多个线程并发执行,每个线程执行过程中,变量值是相同的,执行结果也是相同的,就是线程安全的.否则就是线程不安全的. 然后回顾一下servlet的线程安全问题,由于servlet是单例模式的,只会产生一个实例,当多个用户同

随机推荐