标签:小新手struts2
Struts配置 1.软件下载: 2.前期工作 3.具体操作 A.将需要的jar文件复制到web项目中webroot下的lib文件夹中 Jar文件所在: Apps----->struts2-blank------>web-inf---->lib B.配置web.xml 和struts.xml 配置struts.xml 1.将struts.xml复制到项目中src目录下 Struts.xml位置: 将struts-2.x.x中的apps打开------》解压struts2-blank----》打开web-inf文件-----》classes------》找到struts.xml,如下图 2.注释掉struts.xml的多余内容,将package标签的内容复制下来,将package中内容更改如下: ( 注意: A.namespace的作用:与在浏览器中访问的路径一一对应 总结为:http://localhost:8080/web项目名称/struts.xml中的action name B.若在项目src中建立一个包package,则在struts.xml中配置package name=“包名” ) 配置web.xml 1.web.xml位置 将struts-2.x.x中的apps打开------》解压struts2-blank----》打开web-inf文件-----》web.xml 2.将这其中的在<filter>中复制过来,如下图 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> Action流程 <form action=”*.action”>路径映射到web.xml 中的url-pattern,然后在上面的filter中的*andexcute*进行过滤查找,即在struts.xml中查找action,由属性class进行流程,然后运用方法,写result name,必须要匹配,然后流程进入结果页面。 Package讲解 <struts>可以有多个Package</struts> <Package>可以有多个action</Package> 上述的name可以任意取名,extends必须有 查看源代码的方法: 任意打开一个class文件,点击 然后选择文件夹: Struts2.3 api Doc 1.准备阶段 新建java项目----》将E:\struct\struts-2.3.20\src\core\src\main\java下的org文件copy到src下----》将E:\struct\struts-2.3.20\lib中的jar文件(除了struts-core-*.jar)+E:apache-tomcat-6.0.10\lib中的jsp.api和servlet.jsp 2.生成工作 首先在桌面上创建一个文件夹struts—doc,然后选中项目进行下面操作。 等待生成。。。。。 Struts在启动时有3个文件需要解析: 内置文件: Parsing configuration file [struts-default.xml] 插件文件: Parsing configuration file [struts-plugin.xml] 自己配置的文件: Parsing configuration file [struts.xml] 类型转换 Struts2可以自动的进行类型转换方式,但并不能满足要求。 在写action方法时,需要从actionsupport继承,如下图 需要写转换器: 另外建立一个包,需要继承**,如下图 转换器内容自己写入:如下 toType:表示传向的方向 Value:表示所传的值 创建属性文件: 在与action类的同一个包中,建file,其中名字必须如下图: 即:*action名-conversion.properties 然后打开此属性文件,点击source,写入,如下图 User是所对应的action中的类 后面的是转换器的包 流程: 用户提交 寻找action,实例化对象class 通过属性文件,知道先进行类型转换,生成某一类型转换对象 自动调用方法转换器,返回的user到useraction 类型转换: 输入校验剖析:(分两种) Addactionerror实现流程: Addfielderror实现流程: 第一种:编码方式: action级别的处理错误信息 1.Action继承actionsupport,所以可以进行校验,提供Validate()方法 2.先执行validate(验证),在execute() 3.进行校验时,只写不符合满足要求的代码 4.在validate方法中进行验证,验证的方法用addactionerror(“提示信息”) if(username == null || username.length() < 4 || username.length() > 6) { this.addActionError("username error!!"); } 5.在struts.xml中配置验证错误相对应的result,即 <result name=”input”>/*.jsp</result> 6.要想要提示信息显示在页面上,需要在jsp页面里面加入struts标签库, <s:actionerror/> field级别错误消息 步骤和上述方法不同的是: 1.将this.actionerror()方法改写为: this.addFieldError("username", "name field!!!"); 即this.addFieldError("验证名", "提示信息"); 2.要使信息提示显示出来,则需要在显示页面添加另外一个标签: <s:fielderror cssStyle="blue"></s:fielderror> 两种级别比较: 1.存放的位置不一样(addactionerror,fielderror) 2.呈现的方式不一样(标签) 总结: (1.类型转换出现错误时,错误提示会保存到field级别,而不是action级别,并且Struts有自带的field错误提示 (2.Field级别提示信息可以手动或者是自动提供 (3.Clear不可以清除action和field错误,仍有提示信息即 this.getFieldErrors().clear(); this.getActionErrors().clear();因为返回的是集合的副本 (4.clear**error可以清除错误,并且没有提示信息: this.clearActionErrors(); this.clearFieldErrors(); Struts标签: 1.用struts标签必须要写的: 2.输出的意思:<s:property> 3.Action级别验证时出现错误且有信息提示: 也可以增加提示颜色: <s:actionerror cssStyle="color:red"/> 4.field级别验证时出现错误时,有信息提示: <s:fielderror cssStyle="color:blue"></s:fielderror> 5.表单:<s:form></s:form> Action表示找的流程,theme的作用是用户自定义表单用途的 6.输入文本域,其中name=”文本框输入的内容” label=”注释” <s:textfield name="username" label="username"></s:textfield> 即:username: 7.输入密码时,其中name,label属性同上 <s:password name="password" label="password"></s:password> 8.提交按钮时, <s:submit value="submit"></s:submit> *注意: 1.如果方法中是自己定义的,则需要在struts.xml中的action的属性后加入一个method=”方法名” 2.用struts标签进行页面提交时,后台会自动的在处理field错误信息,即重复提示field错误信息。即: 若要消去重复的提示,则可以如下: <s:form action="register.action" theme="simple"> username:<s:textfield name="username" label="username"></s:textfield><br> password:<s:password name="password" label="password"></s:password><br> repassword:<s:password name="repassword" label="repassword"></s:password><br> age:<s:textfield name="age" label="age"></s:textfield><br> birthday:<s:textfield name="birthday" label="birthday"></s:textfield><br> graduation:<s:textfield name="graduation" label="graduation"></s:textfield><br> <s:submit value="submit"></s:submit> </s:form > 3.先执行型转换,在执行输入校验,两者息息相关 4.类型转换出现错误时,错误提示会保存到field级别,而不是action级别,并且Struts有自带的field错误提示。 错误剖析: 404:”result input”输入校验出错,会寻找struts.xml中的result中name=”input”,如下图: 代码收集: 比较两个日期谁前谁后时,采用一下代码: if(birthday != null && graduation != null) { Calendar c1 = Calendar.getInstance(); c1.setTime(birthday); Calendar c2 = Calendar.getInstance(); c2.setTime(graduation); //比较c1 c2哪个在前面 if(!c1.before(c2)) { this.addActionError("birthdate is later!!"); } 比较密码和重输入密码时,采纳: //验证密码在4-6之间,先判断长度是否相同,在判断内容是否相同 if(password == null || password.length() < 4 || password.length() > 6) { this.addActionError("password error!!"); }else if(repassword == null || repassword.length() < 4 || repassword.length() > 6) { this.addActionError("repassword error!!"); }else if(!password.equals(repassword)) { this.addActionError("repassword no same password!!"); }
本文出自 “wjy1” 博客,转载请与作者联系!
标签:小新手struts2
原文地址:http://9993849.blog.51cto.com/9983849/1621546