Struts2_学习笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Struts2学习笔记1入门1.1配置入门,安装JDK、Tomcat、Eclipse、MyEclipse等环境,下载strut2框架。1.2第一个Struts21)新建一个Web工程(stud_struts2_note),将struts2的(freemarker-[verid].jar、ognl-[verid].jar、struts2-core-[verid].jar、xwork-[verid].jar、commns-logging-[verid].jar)这五个核心组件拷贝到工程下面的WEB-INF\lib目录下面。修改WEB-INF目录下面的web.xml文件如下:?xmlversion=1.0encoding=UTF-8?web-appversion=2.4xmlns=:xsi=:schemaLocation=://java.sun.com/xml/ns/j2ee/web-app_2_4.xsdfilter!--过滤器名struts2--filter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.FilterDispatcher/filter-class/filterfilter-mappingfilter-namestruts2/filter-name!--表示过滤所有的请求--url-pattern/*/url-pattern/filter-mappingwelcome-file-list!--表示默认系统页面为login.jsp--welcome-filelogin.jsp/welcome-file/welcome-file-list/web-app2)添加两个jsp页面分别为login.jsp,output_login.jsp,代码如下:login.jsp:%@pagelanguage=javacontentType=text/html;charset=gbkpageEncoding=gbk%%@taglibprefix=suri=/struts-tags%s:formaction=logins:textfieldname=username/s:textfields:passwordname=password/s:passwords:submitvalue=提交/s:submit/s:formoutput_login.jsp:%@pagelanguage=javacontentType=text/html;charset=gbkpageEncoding=GBK%%@taglibprefix=suri=/struts-tags%usernameis:${requestScope.username}brpasswordis:s:propertyvalue=password/3)增加Action处理表达数据,首先新建包org.dql.Action,添加LoginAction.java类,代码如下:packageorg.dql.action;importcom.opensymphony.xwork2.ActionSupport;publicclassLoginActionextendsActionSupport{privateStringusername;privateStringpassword;publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.username=username;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}@OverridepublicStringexecute()throwsException{if(username!=null&&!username.equals())returnSUCCESS;elsereturnINPUT;}}4)在WEB-INF\classes目录下增加配置文件(struts.xml)代码如下:?xmlversion=1.0encoding=UTF-8?!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN=struts2extends=struts-default!--action的name属性表示以后表单使用action只要和该值相同,就会调用class属性所对应的类进行处理--actionname=loginclass=org.dql.action.LoginActionresultname=input/login.jsp/result!--请注意下面的代码type=dispatcher(请求转发)相当于.Net里面的Serever.Transfer这里还有很多类别请参考struct-default,值得注意的是如果type=redirect的话就会重定向页面,这样原来页面的request相关参数将不会自动保存。--resultname=successtype=dispatcher/output_login.jsp/result/action/package/struts重启服务器,在IE键入查看效果____________________________________________________________________________________________________________________________________________________________2输入校验2.1使用服务代码源代码关联(到,和ognl),然后将源代码的关联到相应的位置,至于struts2的关联只需要将其关联到所下载解压后的struts-[verid]即可。使用服务代码验证有两种级别(ActionError、FieldError),addFieldError返回的是一个Map(类似.NET)里面的Hashtable,而addActionError返回的则是List。修改LoginAction.java的execute()方法,重写ActionSupport类的validate方法相关代码如下:@Overridepublicvoidvalidate(){if(StringUtil.IsEmptyString(username)||!(username.length()=6&&username.length()=20))this.addFieldError(username,用户名不能为空!且长度必须在(6~20)之间。);if(StringUtil.IsEmptyString(password)||!(password.length()=6&&password.length()=20))this.addFieldError(password,密码不能为空!且长度必须在(6~20)之间。);}@OverridepublicStringexecute()throwsException{returnSUCCESS;}这样如果对应的文本框输入不正确就会验证不通过。s:fielderror/s:fielderror用于显示FieldError级别的错误信息,s:actionerror/用于显示ActionError级别的错误信息。需要注意的是使用了标签显示错误会和struts2默认的信息重复,可设置表单的属性(theme=simple)除去默认的显示信息如标签的label信息、默认的错误信息等等。2.2使用struts2的验证框架,小技巧,查看struts2验证框架可使用type:依次展开(xwork-[verid]com.opensymphony.xwork2.validator.validatorsdefault.xml),打开该文件就可以看到它内置的可用验证类别。要对某个Action进行验证就得在和该Action的class文件同一目录创建名为([Action名]-validation.xml)的文件。以下是使用Register-validation.xml对RegisterAction进行验证的部分代码:?xmlversion=1.0encoding=UTF-8?!DOCTYPEvalidatorsPUBLIC-//OpenSymphonyGroup//XWorkValidator1.0.2//EN=usernamefield-validatortype=requiredstringparamname=trim/parammessage配置验证用户名不能为空/message/field-validator/fieldfieldname=passwordfield-validatortype=requiredstringshort-circuit=truemessage密码不能为空/message/field-validatorfield-validatortype=stringlengthparamname=minLength10/paramparamname=maxLength20/parammessage密码长度必须在${minLength}和${maxLength}之间/message/field-validator/fieldfieldname=repasswordfield-validatortype=requiredstringmessage确认密码不能为空/message/field-validatorfield-validatortype=stringlengthparamname=minLength10/paramparamname=maxLength20/parammessage确认密码长度必须在${minLength}和${maxLength}之间/message/field-validator/fieldfieldname=emailfield-validatortype=emailmessage电子邮件格式不正确/message/field-validator/fieldfieldname=agefield-validatortype=intparamname=min1/paramparamname=max150/parammessage年龄必须在${min}和${ma

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功