struts1.x入门
1.struts1.x的工作流程
检索与用户请求匹配的ActionMapping实例(配置文件里面找)
创建ActionForm对象,提取并保存表单参数
使用ActionForm的validate方法进行表单验证(失败会返回原来输入表单的页面)
ActionServlet传递请求给相应的Action
Action的execute方法返回ActionForward对象
ActionServlet转发请求给ActionForward描述的JSP
开发过程
2.分析第一个struts应用需求
接受用户输入一个姓名,然后返回“你好,<name>!”
如果没有输入内容提交表单,则返回出错信息
如果输入姓名为“god”,则返回错误信息,拒绝向god打招呼
3.准备eclipse项目
启动eclipse
配置好server
配置好jdk编译环境
创建一个动态的web项目hellostruts
将struts1的相关jar库加到WEB-INF/lib中
4.创建视图组件
编写一个表单页面hello.jsp(让用户输入姓名,和点击提交按钮)
<body>
<form name="hello_form" method="post" action="hello.do">
user name:<input type="text" name="name"/>
<input type="submit" value="submit"/>
</form>
</body>
创建完成后跳转页面ok.jsp
利用表达式语言,从请求中的参数里把名字找出来诠释在这里
解释:
name:为这个表单form起一个名字
method:表单提交方法 post/get
action:表单提交给谁,从web.xml中可以发现servlet-mapping的action是通过*.do映射的,所以可以命名为**.do
编写form类HelloForm继承ActionForm类(表单中的内容会被提取出来放到form类中去)
private String name;
set&&get方法
重写validate方法用于验证表单中输入的数据是否正确
本例中:name不为空 若错为ActionErrors集合add一个错误
5.创建action类
编写action类继承action类
重写覆盖execute()方法,做业务处理
实现如果名字为god,返回错误信息
本例中
如果名字错误 return mapping.getInputForward();//返回到之前输入的页面
如果名字正确 return mapping.FindForward("success");//一个叫success的配置,配置中会指定转到哪个页面
6.创建配置文件
创建struts-config.xml
配置表单和action
配置表单类
<form-bean name="helloform" type="com.web.action.HelloForm" />
解释:
form-bean中的name:给表单类起的名字(名字是啥没要求)
type:是写的ActionForm类的路径,意思是请求来了,请用这个HelloForm表单类来帮我接收参数
配置Action
<action path="/hello"
name="helloForm"
type="com.action.HelloAction"
input="/hello.jsp"
validate="true">
<forward name="success" path="/ok.jsp" />
</action>
解释:
path指的是你送过来的*.do的*(注意路径/)
name就是告诉控制器来的是*.do时候用哪个Form表单来接收参数(就是刚刚配置的名为helloform的form-bean)
validate=true就是用来告诉这个表单是要验证的
type就是告诉控制器,如果表单验证通过的话,就是这个Action类执行
web.xml
<servlet></servlet>
<servlet-mapping></servlet-maping>
1.struts1.x的工作流程
检索与用户请求匹配的ActionMapping实例(配置文件里面找)
创建ActionForm对象,提取并保存表单参数
使用ActionForm的validate方法进行表单验证(失败会返回原来输入表单的页面)
ActionServlet传递请求给相应的Action
Action的execute方法返回ActionForward对象
ActionServlet转发请求给ActionForward描述的JSP
开发过程
2.分析第一个struts应用需求
接受用户输入一个姓名,然后返回“你好,<name>!”
如果没有输入内容提交表单,则返回出错信息
如果输入姓名为“god”,则返回错误信息,拒绝向god打招呼
3.准备eclipse项目
启动eclipse
配置好server
配置好jdk编译环境
创建一个动态的web项目hellostruts
将struts1的相关jar库加到WEB-INF/lib中
4.创建视图组件
编写一个表单页面hello.jsp(让用户输入姓名,和点击提交按钮)
<body>
<form name="hello_form" method="post" action="hello.do">
user name:<input type="text" name="name"/>
<input type="submit" value="submit"/>
</form>
</body>
创建完成后跳转页面ok.jsp
利用表达式语言,从请求中的参数里把名字找出来诠释在这里
解释:
name:为这个表单form起一个名字
method:表单提交方法 post/get
action:表单提交给谁,从web.xml中可以发现servlet-mapping的action是通过*.do映射的,所以可以命名为**.do
编写form类HelloForm继承ActionForm类(表单中的内容会被提取出来放到form类中去)
private String name;
set&&get方法
重写validate方法用于验证表单中输入的数据是否正确
本例中:name不为空 若错为ActionErrors集合add一个错误
5.创建action类
编写action类继承action类
重写覆盖execute()方法,做业务处理
实现如果名字为god,返回错误信息
本例中
如果名字错误 return mapping.getInputForward();//返回到之前输入的页面
如果名字正确 return mapping.FindForward("success");//一个叫success的配置,配置中会指定转到哪个页面
6.创建配置文件
创建struts-config.xml
配置表单和action
配置表单类
<form-bean name="helloform" type="com.web.action.HelloForm" />
解释:
form-bean中的name:给表单类起的名字(名字是啥没要求)
type:是写的ActionForm类的路径,意思是请求来了,请用这个HelloForm表单类来帮我接收参数
配置Action
<action path="/hello"
name="helloForm"
type="com.action.HelloAction"
input="/hello.jsp"
validate="true">
<forward name="success" path="/ok.jsp" />
</action>
解释:
path指的是你送过来的*.do的*(注意路径/)
name就是告诉控制器来的是*.do时候用哪个Form表单来接收参数(就是刚刚配置的名为helloform的form-bean)
validate=true就是用来告诉这个表单是要验证的
type就是告诉控制器,如果表单验证通过的话,就是这个Action类执行
web.xml
<servlet></servlet>
<servlet-mapping></servlet-maping>
7.打包、发布与运行
上面是观看视频教程:http://v.ku6.com/show/wU8hayy_DNEhv0mT.html的笔记,详细可以看视频