Struts 1.3学习总结(3)

1. 一个简单的用户管理系统

需求:完成对用户的增删改查

①创建web项目,并引入struts开发包

②画出框架图(使用MyEclipse提供的struts设计界面来画)

login.jsp -> LoginAction(UserForm) -> mainFrame.jsp -> GoManage-> manageuser.jsp


③写好DAO/Service层


2. 分派action(DispatchAction)

为什么需要DispatchAction?


从上面的设计来看,完成功能没有问题,但是如果我们每个请求都对应一个Action,势必造成Action过多,程序显得比较臃肿。为达到减肥的目的,可以把一类请求写到一个Action中处理,所以使用分派action,DispatchAction。好处:1.程序简单 2.利于维护和扩展

快速入门案例:

①创建web工程

②引入struts包

③在struts-config.xml文件中,增加parameter参数,用于将来区分用户的不同请求,它的值由用户指定:

<!-- parameter用于将来区分用户的不同请求,它的值由用户指定 -->
  <action-mappings >
    <action
      attribute="userForm"
      parameter="flag"
或者直接使用图形化界面生成DispatchAction,注意要填写flag:



④使用DispatchAction,往往需要自己从新命名函数,即将Action中的execute方法改名

request.getSession().invalidate();//清除所有session
request.getSession().removeAttribute();//只清除某一个session
⑤通过flag确定是在DispatchAction中调用哪个函数,往哪里跳转



3. 全局跳转

如果一个forward写在action的标签里面,则说明是局部跳转,也即只有这个action才能使用这个跳转。

全局跳转就是在action标签之外使用<global-forward>


配置完成之后,在Action之中直接加入goerr即可:

return mapping.findForward("goerr");


所谓全局跳转,指的是所有action都可以跳转到该页面

所谓局部跳转,指的是只有本action才可以跳转到该页面


4. 动态表单dynamic form

当我们jsp的表单内的属性个数和类型不能确定的时候,我们可以使用动态表单来解决问题。

动态表单和普通表单的区别在于:

①普通表单类ActionForm是首先你需要定义这样一个表单类,然后配置到struts-config.xml中

②动态表单完全依赖反射机制创建,因此不需要去定义ActionForm类,直接在struts-config.xml中配置即可


快速入门:

①手动配置struts-config.xml

<form-beans>
	<form-bean name="userForm" type="org.apache.struts.action.DynaActionForm">
	<!-- 该表单的属性是配置出来的 -->
	<!-- name是jsp页面空间的name,type是将来要保存的数据类型 -->
	<form-property name="name" type="java.lang.String"></form-property>
	<form-property name="password" type="java.lang.String"></form-property>
	<form-property name="email" type="java.lang.String"></form-property>
	</form-bean>
	</form-beans>

②创建Action

③从动态表单中取出数据

public ActionForward register(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		DynaActionForm userForm = (DynaActionForm) form;// TODO Auto-generated method stub
		//从动态表单中取出数据
		//这里的名字依照struts-config.xml中配置的name
		String name = userForm.getString("name");
		String password = userForm.getString("password");
		String email = userForm.getString("email");
		System.out.println(name+","+password+","+email);
		return mapping.findForward("registerok");
	}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值