Strust2

在web.xml 中配置

引入struts.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>*.action</url-pattern>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
	</filter-mapping>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>

Action 搜索顺序  http://localhost:8080/path1/path2/path3/monthSum.action

第一步:判断package是否存在,如  path1/path2/path3/ 

1.存在则再判断该action(monthSum)是否存在,不存在先去默认的namespace的package里寻找。若还没有就报错

2.不存在   则检查上一级路径的path是否存在(直到默认namespace)重复第一步, 最后没有则报错


URL根据  package中的namespace  和 action的 name进行匹配

   Struts2算是挺旧的了,这里就没有深入去学习,只是了解个大概,对它留点印象。


动态方法调用

1.指定method属性       每一个方法都要在xml中配置 繁琐

	<package name="default" namespace="/" extends="struts-default">
		<action name="monthSum" class="com.leaderSearch.monthSum.action.MonthSumAction">
			<result>/result.jsp</result>
		</action>
		<action name="addAction" method="add" class="com.leaderSearch.monthSum.action.MonthSumAction">
			<result>/add.jsp</result>
		</action>
		<action name="updateAction" method="update" class="com.leaderSearch.monthSum.action.MonthSumAction">
			<result>/update.jsp</result>
		</action>
	</package>
访问的URL 如:http://localhost:8080/addAction.action

2.感叹号方式

      可以根据URL来匹配方法名并执行  URL中的add是 monthSumAction中的方法,该方法返回一个String   "monthSumAdd" 在result配置中对应相应的页面返回

	<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
	<package name="monthSum" extends="default">
		<action name="monthSum" class="com.leaderSearch.monthSum.action.MonthSumAction">
			<result name="monthSumAdd">/WEB-INF/page/monthSum/monthSumAdd.jsp</result>
			<result name="monthSumEdit">/WEB-INF/page/monthSum/monthSumEdit.jsp</result>
		</action>
	</package>
访问的URL 如:http://localhost:8080/monthSum!add.action

3.通配符方式

* 对应着输入的URL,然后作为参数传递到{1},{2}中区               该方法官方推荐

<package name="monthSum" extends="default">
		<action name="*_*" method="{2}" class="com.leaderSearch.monthSum.action.{1}">
			<result name="monthSumAdd">/WEB-INF/page/monthSum/monthSumAdd.jsp</result>
			<result name="monthSumEdit">/WEB-INF/page/monthSum/monthSumEdit.jsp</result>
		</action>
</package>

访问的URL 如:http://localhost:8080/MonthSumAction_add.action



struts2 中 前台向action中传值时有 三种方式

   如在post方法下 , 有个 input框

1. action属性接收参数 

  name = username    后台 只要有个成员变量名为 userName 就直接将值 传入

2. DomainModel接收参数

后台 有多个对象并且其都有 username属性, 那么   前台的name = 对象名.username

3.ModelDriven 接收参数

action 实现 ModelDriven 接口,并将要传入值的对象作为参数代替泛型,      前台仍可以是   name = username




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值