Struts2概述

1. mvc框架

2. 实例

  • web.xml配置文件

<filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

  • java中的action方法,可以加成Action 或者 ActionSupport

      action元素代表一个类,classaction的类的全名,可以写,也可以不写,如果不写class属性,则默认执行ActionSupport中的execute方法,该方法什么都没有做,仅仅返回了一个success字符串.

action的构造器中输出一句话,在浏览器中多次请求,可以看到构造器执行了好几次,所以action是多例的。

 

1、 sturts2的配置文件中用了package的机制,这样可以分模块

name是唯一的名称,extends采用了继承的机制

2、 写的actionservlet容器完全松耦合了

3、 通配符映射解决:很容器就把一个url映射到一个action的方法中了

4、 Include保证了可以写多个配置文件

5、 结果集的封装


  • Result

代表一种结果集,Type 为结果集的类型,Name 属性的值和action中某一个方法的返回值一致,type属性不写,则默认和struts-default中的结果集中的default="true"的结果集保持一致,为dispatcher,转发,result标签中的内容就是要转发到的页面,在struts-default.xml文件中.


  • struts.xml的配置文件

<!-- 
	package:作用:对应用中的动作进行模块化管理。就如同把类放在不同的包中是一样的。
		属性:
		name:包名。要保持唯一
		extends:struts2中配置文件的信息可以继承的。开发时,自己的包一般情况下都要继承“struts-default”
		abstract:抽象包。如同抽象类。没有任何action资源的包可以定义为抽象的。
		(有点难度)namespace:名称空间。默认值是""
			http://域名/应用名称+namespace+动作名称.action
			
		
	 -->
	<package name="p1" extends="struts-default" namespace="/wuhyoung">
		<!-- 
		action:定义一个动作
			name:动作的名称。同一包中的name必须唯一
			class:动作类的全名。可选的.默认值是:com.opensymphony.xwork2.ActionSupport(在struts-default.xml中有配置)
			method:动作类中的动作方法。可选的.默认值是:execute()的方法
		 -->
		<action name="hello" class="com.wuhyoung.HelloAction" method="hello">
			<result name="success" type="dispatcher">/success.jsp</result>
		</action>
		<!--
		<action name="hello">
			 result:结果视图。转向的页面
				name:字符串。对应的是动作方法的返回值。
				type:转向的类型。默认dispatcher,转发
			<result name="success" type="dispatcher">/success.jsp</result>
		</action>
		-->
	</package>


获取值栈的三种方式

		ValueStack valueStack = ServletActionContext.getValueStack(ServletActionContext.getRequest());
		ValueStack valueStack2 = ActionContext.getContext().getValueStack();
		ValueStack valueStack3 = (ValueStack) ServletActionContext.getRequest().getAttribute("struts.valueStack");
		


获取request的两种方式

 

implements ServletRequestAware,ServletResponseAware

HttpServletRequest request = ServletActionContext.getRequest();





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值