请懂软件开发框架struts的朋友进来一下,有个问题,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/14 05:54:09
小弟是初学struts框架,有个问题想问一下大家,问大家帮帮忙!
1)在jsp页面里,我定义了<html:form action="myaction">,然后提交表单,ActionServlet会根据action属性找到struts-config文件中的<action path="myaction">,这样就找到了与之对应的Action,请问找到这个Action有什么用啊?要干什么?

2)同时ActionServlet会根据struts-config文件中的<action path="myaction" name="myform">中的name属性去找<form-bean name="myform">,这样就把这个我自己定义还得myform和前面jsp中的form表单绑定在一起了,当我点击“提交”后,jsp表单中的值就会传到我这个自定义的myform中,到这里都没错吧?可是我就不明白了,既然我已经把页面的值都传给我的myform了,可是为什么在Action文件中,传进来的带有表单内容的form竟然是ActionForm类型的,我还要强转成我自己类型的form,即
MyForm myform = (MyForm)form;这是什么意思,我前面在配置文件中不是明明写好了,把jsp表单内容给我自定义的form么?为什么有变成ActionForm了?

第一个问题,找着Action以后 你可以在改Action里边敲写代码了,比如说取得表单提交过来的参数啊,做一些简单的逻辑运算什么的,不过建议你不要在Action里做复杂的逻辑运算,最好是写一个业务类 然后在Action里调用业务类来实现相应逻辑。
第二个问题,这个是Struts底层的问题了,他们就这么写的,所以我们就这么做,而且你配置myform不是为了跟JSP的from绑在一起,而是告诉JSP,我这个Action需要你JSP要给我传?,?,?个东西,而且传到Action里以后他还是JSP的东西,所以得用强行转换才行,呵呵,我表达能力有点差 不知道能不能理解。

那是一定要强转的,因为你定义的myform是继承ActionForm的,所以要转。
<action path="/myaction">,一定要有"/"。

1)找到Action以后就可以使用Action中的方法处理请求了
2)因为方法中的参数是固定的就是ActionForm,你写的MyForm是继承ActionForm的,所以要强转

软件问题吧?软件没问题就是自定义设置!