• Struts2中 Path (getContextPath与basePath)


    struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。

    虽然可以用redirect方式解决,但redirect方式并非必要。
    解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextpath方式来拿到webapp的路径)
    或者使用myeclipse经常用的,指定basePath

    例子:

    <?xml version="1.0" encoding="GB18030" ?>
    <%@ page language="java" contentType="text/html; charset=GB18030"
        pageEncoding="GB18030"%>
        <%@taglib uri="/struts-tags" prefix="s" %>
        <%
        //这里的path是得到webapp的名字,如果我们的webapp名字是struts_0400_path
        //那么path就是struts_0400_path
        //basePath包含了path内容,他是全路径:        http://localhost:1000/struts2_0400_paht
        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%>" />是指定根路径。
    <base href="<%=basePath%>" />
    
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
    <title>Insert title here</title>
    </head>
    <body>

    说明:在这里我们使用的链接是index.jsp,但是因为在<head>中我们定义了<base href="<%=basePath%>" />
      所以在这里的链接其实是:http://localhost:1000/struts2_0400_path/index.jsp 路径

      这就是<base href="<%=basePath%>" />的好处之所在了。
    <a href="index.jsp">index.jsp</a>

  • 相关阅读:
    lcd驱动解析(二)
    php参数引用
    Curl来做冒烟测试
    TIB自动化测试工作室QTP脚本汇总比较有价值
    使用QTP自动化 DZ消息复选框选择实例!
    正则表达式30分钟
    sqlserver查询数据库中有多少个表
    怎样获取页面上所有链接的名称和url
    Curl 来做自动跟踪重定向
    sqlserver2008 删除指定表
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4185806.html
Copyright © 2020-2023  润新知