1. <%@ taglib uri="/struts-tags" prefix="s" %> prifix前缀
2. <s:fielderror></s>字段错误;<s:actionerror/>动作错误。
3. action:请求的地址,直接写动作名称,不用写contextpath.
method:请求的方式;默认post。
enctype:表单编码的MIME(多用途互联网邮件扩展类型)类型;
4. <s:form>
<s:textfield name=”username” lable=”用户名”/>
</s:form>
5. 异常处理:(配置回显结果视图) --无效的域值birthday(key-value)
Invaild.fieldvalue.birthday 出生日期有误,正确格式为:yyyy-MM-dd
类型转换失败后,通过conversionError拦截器进入input视图,此外定义Action时必须继承ActionSupport。
6. 编程式验证:动作类必须继承ActionSupport;重写Validate方法。(validate方法在会在动作方法执行之前,进行验证。)
public void validate() {
if(StringUtils.isBlank(user.getUsername())){
addFieldError("username","请输入用户名");
}
}
7. <validators>
<!-- 基于字段式声明验证 -->
<!-- field中name属性指定的是name属性的取值-->
<field name="username">
<!-- struts2为我们提供了很多内置验证器,requirestring验证输入内容是否为空,是否为空字符串,并且去电左右两边的空格-->
<field-validator type="requiredstring">
<message>用户名呢</message>
</field-validator>
</field>
</validators>
8. (加入注解跳过验证@SkipValidation)当使用ActionClassName-validation.xml命名文件时,它是一个动作类验证器,会验证动作类中的所有动作方法。
9. 针对动作类中的某个动作进行验证:ActionClassName-ActionName-validation.xml(动作类名称-动作类名称)
把dtd文件的头拷过来!!!
10. <!-- 基于验证器的验证 -->
<validator type="requiredstring">
<!-- 以注入的方式,提供验证的信息字段 -->
<param name="fieldName">password</param>
<message>请输入密码</message>
</validator>
11. URL:uniform resource locator统一资源定位符;
12. 区别:
http://localhost:8080/day25/register.jsp
协议 主机 端口 URI
返回String
URI:uniform resource identifier统一资源标识符;
/day25/register.jsp
返回StringBuffer
13. 使用<s>标签需要导入struts2的标签库
14. <%@ taglib uri="/struts-tags" prefix="s" %>
15. Sturts2运行时配置出错:Tomcat默认从WEB-INF/目录下加载资源,Eclipse在发布程序的时候,并没有把User Libraries的相关资源拷贝到WEB-INF/目录下(Eclipse会把src目录下的所有非*.java文件复制到WEB-INF/classes目录下),所以Tomcat说找不到所需要的类。手动将Struts2的相关jar复制到/webContent/WEB-INF/lib目录下。
16. 三层架构与Struts2
表现层:M model V view C control
业务层:service
持久层:dao data access object
17. Struts2在三层架构中的位置是处于表现层。注意它只是一个表现层框架。
MVC与Struts2
18. 控制器:Servlet
init()
destroy()
service(ServletRequest,ServletResponse)
19. 过滤器:Filter 它也可以作为控制。
init(FilerConfig)
destroy()
doFilter(ServletRequest,ServletResponse,FilterChain)
20. Servlet能做的Filter都可以做,并且比Servlet功能更强大,它多了一个放行的功能。
Volidator的类型:可选值 验证功能
Require 必填项
Chinese 中文
English 英文
Number
数字
Integer
整数
Double
实数
Email
Email地址格式
Url
基于HTTP协议的网址格式
Phone
电话号码格式
Mobile
手机号码格式
Currency
货币格式
Zip
邮政编码
IdCard
身份证号码
QQ
QQ号码
Date
日期
SafeString
安全密码
Repeat
重复输入
Compare
关系比较
Range
输入范围
Limit
限制输入长度
LimitB
限制输入的字节长度
Group 验证单/多选按钮组
Custom 自定义正则表达式验证