Struts2内建类型转换器

对于Web应用而言,所以的请求参数都是字符串类型。在传统的Web应用中,我们经常需要通过手工编码,将接受到的参数转换为Java的各种类型,或者将Java各种类型的参数,转换为字符串发送到客户端。在Struts2框架中,提供了强大的类型转换机制,开发人员可以利用Struts2的这个机制进行任意复杂的类型转换。

对于Java的常用类型,开发人员无需为它们建立自己的类型转换器。在Struts2中可以自动完成这些数据类型的转换工作。Struts2自带的类型转换器支持以下类型与字符串的互换:
* boolean和Boolean
* char和Character
* int和Integer
* float和Float
* long和Long
* double和Double
* Date

下面为演示代码,type.jsp页面接受参数,由TypeConversionAction转接到conversion.jsp,在着过程中参数的类型转换自动完成

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>type</title>
</head>
<body>
    <s:form action="typeConversion">
        <!-- 对应product属性 -->
        <s:textfield label="产品1" name="products"/>
        <s:textfield label="产品2" name="products"/>
        <s:textfield label="产品3" name="products"/>
        <!-- 对应numbers属性 -->
        <s:textfield label="数字1" name="numbers"/>
        <s:textfield label="数字2" name="numbers"/>
        <s:textfield label="数字3" name="numbers"/>
        <!-- 对应collections属性 -->
        <s:textfield label="集合1" name="collections"/>
        <s:textfield label="集合2" name="collections"/>
        <s:textfield label="集合3" name="collections"/>
        <s:submit value="提交"/>
    </s:form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>conversion</title>
</head>
<body>
    <b>产品</b><br/>
    <s:property value="products[0]"/>
    <s:property value="products[1]"/>
    <s:property value="products[2]"/><p/>
    <b>数字</b><br/>
    <s:property value="numbers[0]"/>
    <s:property value="numbers[1]"/>
    <s:property value="numbers[2]"/><p/>
    <b>集合</b><br/>
    <s:property value="collections[0]"/>
    <s:property value="collections[1]"/>
    <s:property value="collections[2]"/>
</body>
</html>
import com.opensymphony.xwork2.Action;

import java.util.List;

public class TypeConversionAction implements Action{
    private String[] products = new String[3];
    private int[] numbers = new int[3];
    //集合不用初始化
    private List<Integer> collections;

    public String[] getProducts() {
        return products;
    }

    public int[] getNumbers() {
        return numbers;
    }

    public List<Integer> getCollections() {
        return collections;
    }

    public void setProducts(String[] products) {
        this.products = products;
    }

    public void setNumbers(int[] numbers) {
        this.numbers = numbers;
    }

    public void setCollections(List<Integer> collections) {
        this.collections = collections;
    }

    @Override
    public String execute() {
        return "conversion";
    }
}
<?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="testType" extends="struts-default">
        <action name="typeConversion" class="chapter10.part2p1.TypeConversionAction">
            <result name="conversion">/chapter10/part2p1/conversion.jsp</result>
        </action>
    </package>
</struts>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值