struts2类型转换器

类型转换器分为全局类型转换器和局部类型转换器。全局类型转换针对所有Action都起作用,而局部类型转换器针对某个Action

一、全局类型转换器。将字符串x,y转换成Point

Login.jsp页面

<s:form method="post" action="test">
        <s:textfield name="username" label="账号"></s:textfield>
        <s:password name="password" label="密码"></s:password>
        <s:textfield name="point" label="坐标"></s:textfield>
        <s:submit></s:submit>
    </s:form>

定义实体类

package models;

public class Point {

    private int x;
    private int y;
    public int getX() {
        return x;
    }
    public void setX(int x) {
        this.x = x;
    }
    public int getY() {
        return y;
    }
    public void setY(int y) {
        this.y = y;
    }

    public Point() {
    }
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

}

Point.java

package models;

public class User {

    private String username;
    private String password;
    private Point point;

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Point getPoint() {
        return point;
    }
    public void setPoint(Point point) {
        this.point = point;
    }

}

User.java

定义Action类

package action;

import com.opensymphony.xwork2.ModelDriven;

import models.Point;
import models.User;

public class Test implements ModelDriven<User> {

    private User user=new User();
    public String execute(){
        System.out.println(user.getPoint());
        return "success";
    }
    public User getModel() {
        // TODO Auto-generated method stub
        return user;
    }
}

Test.java

定义类型转换器

package coverter;

import java.util.Map;

import models.Point;

import org.apache.struts2.util.StrutsTypeConverter;

public class PointConverter extends StrutsTypeConverter{

    @Override
    public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
        Point point=null;
        if(arg1.length>0){
            point=new Point();
            String[] cods=arg1[0].split(",");
            point.setX(Integer.parseInt(cods[0]));
            point.setY(Integer.parseInt(cods[1]));
        }
        return point;
    }

    @Override
    public String convertToString(Map arg0, Object arg1) {
        Point point=(Point)arg1;
        return point.getX()+","+point.getY();
    }

}

PointConverter.java

在src下新建一个xwork-conversion.properties文件,内容如下:

models.Point=coverter.PointConverter

前面是需要类型转换的类,后面是转换器

时间: 2024-11-10 14:44:41

struts2类型转换器的相关文章

自定义struts2类型转换器

一.自定义类型转换器 1.编写一个类,继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter 2.覆盖掉其中的public Object convertValue(Map<String, Object> context, Object value,Class toType) context:OGNL表达式的上下文 value:实际的值.用户输入的都是字符串,但他是一个String数组. toType:目标类型 public 

struts2类型转换器、 类型转换错误 以及INPUT view

1.1.1    Struts2中的类型转换器 Struts2内置了常见数据类型多种转换器 boolean 和 Boolean char和 Character int 和 Integer long 和 Long float 和 Float double 和 Double Date 可以接收 yyyy-MM-dd格式字符串 数组  可以将多个同名参数,转换到数组中 集合  支持将数据保存到 List 或者 Map 集合 1.1.2    Struts2中类型转换的错误: 1.NoSuchMetho

8.Struts2类型转换器

类型转换器1.引入在Struts2中,请求参数类型不仅可以是String,还可以是其它类型.如,定义一个请求参数birthday为Date类型,给其赋值为1949-10-1,则birthday接收到的不是字符串“1949-10-1”,而是日期类型.但,需注意的是,对于基本数据类型,需将其定义为包装类型.实例:请求参数值的类型-- typeconverterStep1:编写index.jsp与show.jspStep2:编写Birthday_ActionStep3:编写web.xml与struts

JAVAWEB开发之Struts2详解(二)——Action接受请求参数、类型转换器、使用Struts2的输入校验、以及遵守约定规则实现Struts2的零配置

Action接受请求参数 作为MVC框架,必须要负责解析HTTP请求参数,并将其封装到Model对象中 Struts2提供了非常强大的类型转换机制用于请求数据 到 model对象的封装 Struts2和MVC定义关系 StrutsPrepareAndExecuteFilter:控制器 在Struts2中action是什么?(Struts2是一个MVC框架) V:jsp M:action C:action StrutsPrepareAndExecuteFilter Struts2提供了三种数据封装

Struts2基础学习(四)&mdash;类型转换器

一.自定义转换器 1.概述      Struts2提供了常规类型转换器,可以用于常用数据类型的转换,但如果目标类型是一个特殊类型,则需要自定义转换器.Struts2 类型转换器实际上都是基于OGNL实现的,在OGNL项目中,有一个TypeConverter接口,自定义类型转换器必须实现 ongl.TypeConverter.        2.编写类型转换器 (1)实现TypeConverter接口,实现一个方法 public Object convertValue(Map<String, O

struts2基础----&gt;自定义类型转换器

这一章,我们开始struts2中自定义类型转换器的学习. 自定义类型转换器 一.定义一个继承于StrutsTypeConverter的转换类: package com.huhx.converter; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import o

Struts2之类型转换器

一.类型转换器的应用场景 类型转换是OGNL的一部分,默认的八种基本类型.String.Date会使用类型转换,但是更复杂的类型转换就需要我们自定义了(虽然这个东西一般根本用不到),OGNL可以应用在很多领域,但是在web领域,因为在客户端到服务器端传输的只是字符串,所以这里就有一个需求收缩,我们的需求就变为完成String和复杂对象之间的互相转换.在Struts2中的类型转换则是在客户端的请求参数往Action的成员属性中设置的时候会被调用. 二.如何使用? 1.理论部分 所有的类型转换器都要

struts2自定义类型转换器

首先,何为struts2的类型转换器? 类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行相互转换. 一.大部分时候,使用struts2提供的类型转换器以及OGNL类型转换机制即可满足大部分类型转换需求.如: 类User.java package models; public class User { private String username; private String password; public String getUsername() { retur

Struts2 自定义类型转换器

Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性 用date类型是可以接收到的,但是如果传的是20101112这样类型的字符串,用date类型是获取不到,并且会出现错误的,struts2提供了一 种类型转换器供我们使用. 以下为局部类型转换器的开发步骤a.首先要写一个类来继承DefaultTypeConverterb.然后覆盖convertValue