复习struts2之第一个实例

一、struts.xml中的一些配置,及对这些配置的解释:
	<package name="itcast" namespace="/test" extends="struts-default">
		<action name="helloword" class="cn.itcast.action.HelloWordAction" method="execute">
			<result name="success">/WEB-INF/page/hello.jsp</result>
		</action>
	</package>

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

name="itcast":包的名称可以是任意的,但必须是唯一的
包名作用:其他包继承该包时需要使用包名
namespace="/test":命名空间作为访问该包下action路径的一部分,相对于struts1而言有减少重复代码的作用
extends="struts-default":通常每个包都应该继承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。只能被其他包继承

Action名称也可以作为访问action路径的一部分,当请求到达时会交给execute去处理

<result name="success">/WEB-INF/page/hello.jsp</result>
定义视图,success是视图的名字,/WEB-INF/page/hello.jsp视图的路径

在struts的配置文件中可以配置多个action

为什么jsp文件要放在WEB-IN下?
只能通过访问action后再去访问页面,不希望用户直接访问jsp所以放在WEB-INF下。如果放在外面,用户可以通过浏览器直接访问到jsp页面,但是里面没有数据,因为jsp中的数据需要从action中传过来,直接访问也是没有意义的

二、action中的操作
cn.itcast.action包下的类HelloWordAction
public class HelloWordAction {
	private String msg;
	public String getMessage() {
		return msg;
	}
	public String execute(){
		msg="我的第一个struts2应用";
		//请求结束时希望返回什么请求,就返回什么请求就可以了
		return "success";
	}
}

三、jsp中获取数据并显示出来
Hello.jsp
<!-- 通过EL表达式获取 -->
	${message}

注意:EL表达式中,所访问的参数不是action中定义的变量,而是getXX()方法中的XX,首字母要小写(例如:访问的不是msg而是message),通过反射机制调用action中的getXX()方法

Action中没有用到框架中的一些类,可以看出struts2属于无侵入式设计
访问时,前部分是命名空间,然后是action的名字
访问路径:http://localhost:8080/struts2/test/helloword

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值