首先为大家分析了struts框架的工作原理和体系结构,讲解了ActionServlet、Action、ActionForm、ActionForward等类的作用与工作关系。struts-config.xml文件与ActionMapping类。
接着演示使用MyEclipse编写struts应用的步骤:先做ActionForm,并要设置一个use case名, 这个use case名是供MyEclipse这个IDE工具自己使用的。可以先看看不设置这个use case名的效果。在创建ActionForm时,就可以创建出使用这个ActionForm的jsp页面。然后再创建Action。
提问:
ActionForm中有一个重要方法是什么,其返回值有什么作用?validate.
Action中有一个重要方法是什么,接收几个什么样的参数?execute.
<html:form>的action元素可以设置值是否以/开头、是否以.do结尾都是可以的。
按钮标题要采用资源的形式显示,怎么做?<html:submit name=""><bean:message/></html:submit>
在用作input属性的jsp页面中增加如下代码:
<% java.util.Enumeration e = request.getAttributeNames();
while(e.hasMoreElements())
{
String attributeName = (String)e.nextElement();
out.println(attributeName + ":" +
request.getAttribute(attributeName).getClass().getName() + "<br>");
}
%>
从打印出的信息中,可以看到请求域中已经有了一个FormBean,这就是<html:form>标签的功劳。
<html:text>等标签之所以能够自动填写上次提交的信息,就是从这个FormBean中取出来的数据,所以,如果FormBean中有整数类型的成员,它在表单中就会显示为默认值0。
<html:form>在执行体之前,将bean以Constants.BEAN_KEY属性名保存(在这之前,bean还以<action>元素中的attribute属性进行了保存),<html:form>执行体之后,取走Constants.BEAN_KEY属性。
通过今天上午的讲解,再加上有了前面的基础,学员们相信一两天学会struts不是什么神话!因为感觉struts明显不如spring mvc灵活,有些学员想随便听听就算了,不想深入掌握。我马上警告他们,由于习惯和公司技术储备不够的原因,大多数公司用的还是struts,为了工作,他们必须端正态度,学好struts!
今天下午带了几个学员去方正国际公司进行笔试,顺便拜访了方正国际的人力资源总监任丽韫女士,初步达成了长期人才供应的战略协议!