strust namespace

来源:互联网 发布:男生百搭衣服 知乎 编辑:程序博客网 时间:2024/06/05 02:28

Struts的作用,简单说把用户的请求和返回的视图分离!

<package name="front" extends="struts-default" namespace="/front">

     <action name="index">

           <result>/Namespace.jsp</result>

    </action>

</package>

package跟java的包类似,防止命名冲突,一般采用模块化命名。

namaspace决定了action的访问路径,默认为namespace="",表示可以接收所有路径的action。 namespace可以写为/,或者为/xxx,或者/xxx/yyy,对应的action访问路为/index.action,/xxx/index.action,/xxx/yyy/index.action。 namespace最好也用模块来进行命名。

Struts2每次访问Action,都会创建一个新对象!而Struts1访问的Action是同一个对象,在Struts启动时创建!

路径问题?

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

解决方案:统一使用绝对路径。(在jsp中使用request.getContextRoot方式来拿到webapp的路径或者使用myeclipse经常用的,指定basePath。

<%

     String path = request.getContextPath();

     String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

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

或在<head>中加入<base href="<%=basePath%>" />