首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts2中途径的设置

2012-08-31 
struts2中路径的设置关键字: struts2 路径struts2中路径的设置 在struts2中最好使用绝对路径。 MyEclipse中

struts2中路径的设置
关键字: struts2 路径
struts2中路径的设置

在struts2中最好使用绝对路径。

MyEclipse中常用的设置路径的方法:

Java代码 
<% 
  String path = request.getContextPath(); 
    //则path的值是:应用的路径即http://localhost:9000/Struts2_0400_Path/ 
  String basePath = request.getScheme()+"://"+request 
     .getServerName   ()+":"+request.getServerPort()+path+"/"; 
%> 
 
request.getScheme()值是:http 
 
request.getServerName()的值是:localhost 
 
request.getServerPort()的值是:9000 
 
path的值是: struts2_0400_Path 

在使用的时候,只需在path后面加上namespace/*.action
例如:
引用
<a href="<%=path%>/index.jsp">index.jsp</a>


另外一种方式:
  在html的head中加入如下代码

Java代码 
<base href=”<%=basePath%>”/> 

  这里的意思就是说这个jsp页面里所有的<a href/>连接都会在前面加上basePath,如  <a href=”test.jsp”>,则实际的是<a href=” http://localhost:9000/struts2_0400_Path/test.jsp”/>;

但是如果说是
引用
<a href=”/index.jsp”>index.jsp</a>

  这样访问的话,那么访问的将是tomcat的根目录,而不是应用项目的根目录)
  即http://localhost:9000/index.jsp

  因为在jsp中,"/"代表的是站点的跟路劲,而不是应用的根路径。
Struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。
虽然可以用redirect方式解决,但redirect方式并非必要。
解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径),或者使用myeclipse经常用的,指定basePath。如下:
<struts>
    <constant name="struts.devMode" value="true" />
    <package name="path" extends="struts-default" namespace="/path">
        <action name="path" />,然后再使用<a href="index.jsp">链接。

热点排行