在struts框架中使用包来管理Action。包的作用和java中的类包是非常的相似的。它主要用于管理一组业务功能相关的action。
在实际应用中,我们应该把一组业务功能相关的Action放在同一个包下。
配置包时必须指定name属性,该name属性可以任意取名,但必须唯一,他不对应java的类包,如果其他包要继承该包,必须通过该属性进行引用。包的namespace属性用于定义该报的命名空间。命名空间作为访问该包下Action的路径的一部分,如访问上面例子的Acion,访问路径为:/test/helloworld.action。namespace属性可以不配置,
对本例而言,如果不指定该属性,默认的命名空间为“”(空字符串)。
通常每个包都应该继承struts-default包。因为strtus2很多核心的功能都是拦截器来实现的。如;从请求中把请求参数封装到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。
要在页面中显示属性值,一定要定义get方法。
总结:1、先要在struts.xml配置文件中配置一个包,然后在包中配置action标签。
根据action标签,新建Action,和药使用到的字符。
建立对应视图jsp。
struts.xml中的配置
<struts>
<package name="itcast" namespace="/test" extends="struts-default">
<!-- 我的第一个struts应用 -->
<action name="helloworld" class="com.iflytek.action.HelloWorldAction" method="execute">
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
</package>
</struts>
对应的action
public class HelloWorldAction {
private String message;
/**
* @return the message
*/
public String getMessage() {
return message;
}
public String execute(){
message = "我的第一个Struts2应用";
return "success";
}
}
对应的jsp
<body>
${message}
</body>