struts1第二课.docx

上传人:b****6 文档编号:5747116 上传时间:2022-12-31 格式:DOCX 页数:16 大小:361.67KB
下载 相关 举报
struts1第二课.docx_第1页
第1页 / 共16页
struts1第二课.docx_第2页
第2页 / 共16页
struts1第二课.docx_第3页
第3页 / 共16页
struts1第二课.docx_第4页
第4页 / 共16页
struts1第二课.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

struts1第二课.docx

《struts1第二课.docx》由会员分享,可在线阅读,更多相关《struts1第二课.docx(16页珍藏版)》请在冰豆网上搜索。

struts1第二课.docx

struts1第二课

第一讲Struts开发步骤

一、新建web工程,引入struts1.2的组件包

二、打开struts-config.xml文件,通过设计视图创建实体类(FormBean类),

新建formBean如下图所示:

点add按钮加入属性

三、在struts-config.xml文件的设计视图,开始设计访问流程

1、建立自定义的Action必须继承自Action

2、当此action处理请求以后跳转的下一个路径,整个流程图如下所示:

此导航图对应的xml源代码如下:

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.2//EN""http:

//struts.apache.org/dtds/struts-config_1_2.dtd">

attribute="userForm"

input="/login.jsp"

name="userForm"

path="/check"

scope="request"

type="com.zhhlk.struts.action.CheckAction"

validate="false">

name="loginok"

path="/loginok.jsp"

contextRelative="true"/>

name="fail"

path="/fail.jsp"

contextRelative="true"/>

在login.jsp页面通过check.do提交表单数据到CheckAction进行处理,在CheckAction中需要重写execute方法,在此方法中接收用户的请求,接收到以后对请求进行处理,获取actionform对象,此ActionForm就是UserForm对象,此form对象中已经封装了用户的请求信息。

实际上就是将表单元素的值传递给了UserFrom对象。

在action的execute方法中对userfrom对象进行验证.业务代码如下:

packagecom.zhhlk.struts.action;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts.action.Action;

importorg.apache.struts.action.ActionForm;

importorg.apache.struts.action.ActionForward;

importorg.apache.struts.action.ActionMapping;

importcom.zhhlk.struts.form.UserForm;

/**

*

*XDocletdefinition:

*@struts.actionpath="/check"name="userForm"input="/login.jsp"scope="request"

*/

publicclassCheckActionextendsAction{

/**

*Methodexecute

*@parammapping

*@paramform

*@paramrequest

*@paramresponse

*@returnActionForward

*/

publicActionForwardexecute(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

UserFormuserForm=(UserForm)form;//TODOAuto-generatedmethodstub

if(userForm==null){

returnmapping.findForward("fail");

}

if(userForm.getUname()!

=null&&!

userForm.getUname().equals("")&&userForm.getPasswd()!

=null&&!

userForm.getPasswd().equals("")){

returnmapping.findForward("loginok");

}

returnmapping.findForward("fail");

}

}

在execute方法中传递了四个参数,四个参数的意义如下:

(1)、ActionMapping-实现跳转到指定的路径,对应的是struts-config.xml文件的节点,此对象由struts容器创建,并且调用findForward方法跳转到指定的路径。

(2)ActionForm—>实体类对象,由struts容器创建,用于封装jsp页面提交的表单元素或请求的信息。

ActionForm当中的属性名称必须要与jsp页面的表单元素的名称保持一致(一样),且属性要大于或等于表单元素的个数,继承自ActionForm类.

(3)HttpServletRequest-请求对象,由web容器创建

(4)HttpServletResponse响应对象,由web容器创建

四、编写jsp页面,页面的规范如下:

<%@pagelanguage="java"pageEncoding="UTF-8"%>

<%@tagliburi="http:

//struts.apache.org/tags-bean"prefix="bean"%>

<%@tagliburi="http:

//struts.apache.org/tags-html"prefix="html"%>

<%@tagliburi="http:

//struts.apache.org/tags-logic"prefix="logic"%>

<%@tagliburi="http:

//struts.apache.org/tags-tiles"prefix="tiles"%>

 

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

htmllang="true">

base/>

login.jsp

登陆

formaction="check.do"method="post">

账号:

textproperty="uname"/>

密码:

passwordproperty="passwd"/>

submitvalue="提交"/>

resetvalue="重置"/>

form>

html>

在jsp页面使用了struts的html标签以后,

form>标签中不能出现name属性,因为在struts的html标签中name属性表示作用域的名称。

Form表单的名称与action节点的name属性名称一致。

第二部分动态的(DynaActionForm)ActionForm

一、在当前的web工程中创建实体类UserBean类(此web工程已经引入了Struts组件包)

二、将创建的UserBean类定义为动态的FormBean的属性

具体的配置代码如下:

Struts-config.xml文件中的导航如下:

Struts-config.xml文件的配置导航源码如下:

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.2//EN""http:

//struts.apache.org/dtds/struts-config_1_2.dtd">

attribute="userForm"

input="/login.jsp"

name="userForm"

path="/check"

scope="request"

type="com.zhhlk.struts.action.CheckAction"

validate="false">

name="loginok"

path="/loginok.jsp"

contextRelative="true"/>

name="fail"

path="/fail.jsp"

contextRelative="true"/>

在action中对动态formbean的对象处理如下:

/*

*GeneratedbyMyEclipseStruts

*Templatepath:

templates/java/JavaClass.vtl

*/

packagecom.zhhlk.struts.action;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts.action.Action;

importorg.apache.struts.action.ActionForm;

importorg.apache.struts.action.ActionForward;

importorg.apache.struts.action.ActionMapping;

importorg.apache.struts.action.DynaActionForm;

importcom.bean.UserBean;

publicclassCheckActionextendsAction{

/**

*Methodexecute

*@parammapping

*@paramform

*@paramrequest

*@paramresponse

*@returnActionForward

*/

publicActionForwardexecute(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

DynaActionFormuserForm=(DynaActionForm)form;//TODOAuto-generatedmethodstub

//通过DynaActionForm对象获取UserBean对象的属性

UserBeanub=(UserBean)userForm.get("ubean");

if(ub==null){

returnmapping.findForward("fail");

}

if(ub.getUname()!

=null&&ub.getPasswd()!

=null&&!

ub.getUname().equals("")&&!

ub.getPasswd().equals("")){

returnmapping.findForward("loginok");

}

returnnull;

}

}

通过UserBeanub=(UserBean)userForm.get("ubean");获取UserBean对象,ubean参数表示配置在struts-config.xml文件中:

的name属性

三、在jsp页面对动态form中的ubean属性进行访问

<%@pagelanguage="java"pageEncoding="UTF-8"%>

<%@tagliburi="http:

//struts.apache.org/tags-bean"prefix="bean"%>

<%@tagliburi="http:

//struts.apache.org/tags-html"prefix="html"%>

<%@tagliburi="http:

//struts.apache.org/tags-logic"prefix="logic"%>

<%@tagliburi="http:

//struts.apache.org/tags-tiles"prefix="tiles"%>

 

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

htmllang="true">

base/>

login.jsp

--

-->

用户登录

formaction="check.do"method="post">

账号:

textproperty="ubean.uname"/>

密码:

passwordproperty="ubean.passwd"/>

submitvalue="提交"/>

resetvalue="重置"/>

form>

html>

(1)使用struts的html标签获取动态formBean中的对象属性需要做以下的规范(login.jsp页面):

textproperty="ubean.uname"/>通过子属性ubean设置属性uname的值.

Ubean是动态form(UserForm)的子属性。

(2)在action的execute方法中通过动态Formbean对象的get(“子属性名”),获取对象.

UserBeanub=(UserBean)userForm.get("ubean");

(3)向动态的formBean中设置属性采用以下方式(action中):

userForm.set("ubean",ub);

(4)在jsp页面访问动态formBean中的对象属性如下(loginok.jsp):

writename="userForm"property="ubean.uname"/>

测试结果如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1