自学SSH框架之---struts(二):struts如何接受表单数据,并在处理后转发出去

配置完struts后,就做一个实例,大道理不说了,看例子如何通过中央控制器(servlet),接受信息,并转发到相应的action中,说到这就不得不提struts的一个概念actionForm,是做数据收集用的,就是说表单的数据不用以前那种request.getParameter(属实不会拼,知道意思就行了),如果你建立了一个actionForm,它就会自动将数据给设置到actionForm

实例用初学者都用的用户登陆:输入用户名和密码,成功到成功页面,失败到失败页面,页面如下

login.jsp

 

actionForm如下:

loginActionForm.java

 

对于actionForm,我想补充的一点是,这里提到的 ActionForm中的属性必须和表单中输入域的名称一致 是指get,set方法后面的名字,不是    private String username和private String password;,也就是说jsp里面写的是username,那个就应该有get方法就应该叫getUsername,这个跟处理json转java对象的方式一样(扯远了)

 

数据收集完后,得处理啊,就得再建立个action,命名为LoginAction.java

通过LoginAction中的execute方法,得到数据,调用业务逻辑,添加转向信息等等。

好那就先看看如何得到数据:

通过LoginActionForm laf = (LoginActionForm)form;即可获得表单,不用reque.getParameter了

 

正常的情况下,在action应该调用模型层的,访问数据库等操作,这个小例子就不给大家演示了,这个跟struts整个框架没什么关系。

 

再看看如何转向的:

struts是直接写forward转向的吗? 是:不是,从LoginAction的返回类型可以看出struts会返回一个ActionForward对象,对了,就是通过这个对象实现转向的,我们就来简单说明下它的用法,通过判断用户名和密码来转到成功页面和失败页面吧。

      说到这,可能心细的你还有疑问,就是ActionMapping这个参数你都没用,就能返回了,那这个参数传的没意义了吧。呵呵,对了,如果想成功转向,ActionMapping是必须的,可以看程序return mapping.findForward("success"),这个就会返回一个ActionForward对象,写到这,struts也迷糊,不知道往哪跳转,所以此时我们得在struts-config.xml文件进行配置,代码如下:

 

注意以下几点:

先配置actionForm,再配置action,顺序不能颠倒,因为这是由struts-config_1_2.dtd决定的,如果你好奇的可以自己去struts包里面看看,不是那个http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd网址,而是在struts包里面的org.apache.struts.resources里面;

action path的配置一定不要丢了“/”,表示从根开始找,此处定义什么,页面访问什么;

注意name属性不是指action 的名字而是此action对应的actionForm的名字;

forward属性就是为了配置转向信息的

 

OK了 ,到这struts基本数据的收集,跳转就讲完了

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值