精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-05
最后修改:2009-02-05
Struts2.0.11.1 Kit.Liao--KingKit Studio.2009年1月28日星期三
总结: 1. Struts2默认编码是 UTF-8(在org.apache.struts2下的default.properties文件里面有) 1).可以在根目录下建立一个struts.properties文件加入struts.i18n.encoding=编码. 2).也可以在struts.xml加入一个 <constant name="struts.i18n.encoding" value="编码"/> 2. 初始化配置信息还可以web.xml里面配置struts filter的时候加入init-param 3. 注意!!!!!!!struts.xml的package里面元素的出现顺序必须按照: (result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,action*)".
1. 配置web.xml与struts1.x用Servlet不同,2.x用Filter <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter>
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
加入基本的包: 编写struts.xml文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts> <package name="default" extends="struts-default"> </package> </struts> 2. 标签库<%@ taglib prefix="s" uri="/struts-tags"%>
3. 类型转换1.1.1.1. 局部类型第一步:继承ognl.DefaultTypeConverter, 重写 public Object convertValue(Map context, Object value, Class toType)方法 注: 在这个方法里面完成: 1.客户端String--->服务器端自定义类型 2.服务器端自定义类型--->客户端String
第二步: 在Action同一目录下建立 类型转换类类名-conversion.properties文件, 如: PointAction-conversion.properties Properties 文件内容: 属性名=转换类名 如:point=cn.com.kingkit.struts2.test.converter.PointConverter
1.1.1.2. 全局类型转换在classpath目录下(src或者classes)建立一个叫 xwork-conversion.properties 内容: 类型=转换工具类名 如: cn.com.kingkit.struts2.model.Point=cn.com.kingkit.struts2.test.converter.PointConverter
项目开发中一般是继承 org.apache.struts2.util.StrutsTypeConverter 4. Struts2较验
可以在用户自定义的Action类中写一个execute()方法, 也可以使用Struts2的验证框架: 继承ActionSupport ActionSupport有validate方法
有两种级别的Error (1.addActionError(anErrorMessage),2.addFieldError)
自定义验证方法: 在struts.xml的action中加入method="自定义验证方法" 自定义方法在XXAction中定义实现: method="abc" Public String abc() Public void validateAbc()
一般是 validate()---execute() 如果有自定义的验证方法: 先执行validate,valideXX..--->execute,xX()...
1.1.1.3. 使用较验框架(字段较验\非字段较验)在Action实现类同一目录下加入XXX-validation.xml 内容: <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators> <field name="userName"> <field-validator type="requiredstring"> <message>user name can not be blank!</message> </field-validator> <!-- 验证字符串长度 --> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">16</param> <message>length of user name should be 6-16</message> </field-validator> </field> </validators>
Type可以从com.opensymphony.xwork2.validator.validators包里面的default.xml看到. Param的name可以从type对应的class里面可以看到.
注意: 较验框架显示的错误信息是field级别的:<s:fielderror/>
Struts2支持客户端较验(基于XX-validation.xml文件的验证信息..) 1.<s:form 的theme不能设为simple 2.Form的validate属性设为true
一般不使用struts2提供的客户端较验
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 6200 次