struts.xml配置中的包介绍

<package name=”test” namespace=”/test” extends=”struts-default”>

<action name = “HelloWorld” class = “zjh.struts2.lx.HelloWorld” method = “ execute “>

<result name = “ success “ > /success.jsp </result>

</action>

</package>

struts2中使用包来管理action,包的作用和java中的类包是非常类似的,它主要用于管理一组业务功能相关的action。在实际应用中,我们应该把一组业务相关的action放在同一个包下。

如果其它包要继承该包,必须通过该属性进行引用。包的namespace属性用于定义该包的命名空间,命名空间作为访问该包下Action的路径的一部分,如访问上面例子的Action,访问路径为:/test/HelloWorld.actionNamespace属性可以不配置,对本例而言,如果不指定该属性,默认的命名空间为“”(空字符串)。

通常每个包都应该继承struts-default 包,因为struts2很多核心的功能都是拦截器来实现。如:从请求中把请求参数封装到action、文件上传和数据验证行等等都是通过拦截器实现的。Struts-default定义了这些拦截器和result类型。可以这么说:当包继承了struts-default才能使用struts2提供的核心功能。Struts-default包是在struts2-core-2.x.x..jar文件中的struts-default.xml中定义。Struts-default.xml也是struts2默认配置文件。Struts2每次都会自动加载struts-default.xml文件。

包还可以通过abstract=”true”定义为抽象包,抽象包中不能包含action

上面例子中使用到zjh.struts2.lx.HelloWorld类的代码如下:

package zjh.struts2.lx;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorld extends ActionSupport {

private String message;

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

public String execute() {

this.message = "这是我的第一个struts2应用程序";

return SUCCESS;

}

}

 

上面例子中使用到的success.jsp的代码如下:


<struts>

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

<action name="HelloWorld" class="zjh.struts2.lx.HelloWorld">

<result name="success">/success.jsp</result>

</action>

</package>

</struts>    

 

 

注意:访问struts2action URL路径由两部分组成:即“包的命名空间+action的名称”,例如访问本例中的HelloWorld actionURL路径为:/test/HelloWorld  (注意:完整路径为:http:localhost:8080/内容路径/test/HelloWorld)。另外我们也可以加上.action后缀表示访问此Action应用。

<package name=”test” namespace=”/test” extends=”struts-default”>

<action name = “HelloWorld” class = “zjh.struts2.lx.HelloWorld” method = “ execute “>

<result name = “ success “ > /success.jsp </result>

</action>

</package>

你可能感兴趣的:(struts.xml配置中的包介绍)