论坛首页 Java企业应用论坛

Struts 2 快速入门---Struts 2.0 学习笔记

浏览 6200 次
精华帖 (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.encodingvalue="编码"/>

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提供的客户端较验

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics