Struts2的类型转换实例

 

Struts2的类型转换实例

一  类型转换介绍

1.类型转换的意义

(1)个智能的MVC框架而言,不可避免的需要实现类型转换.因为B/S(浏览器/服务器)结构应用的请求参数是通过浏览器发送到服务器的,这些参数不可能有丰富的数据类型,因此必须在服务器端完成数据类型的转换

(2)架是一个表现层解决方案,理应提供类型转换的支持,Struts2提供了功能非常强大的类型转换支持.

2.表现层数据的处理

(1于web应用而言,表现层主要用于与用户交互,包括收集用户输入数据,向用户呈现服务器的状态。因此表现层的数据的流向主要有两个方向:输入数据和输出数据。

(2输入数据:则需要完成由字符串数据向多种类型数据的转化。程序通常无法自动完成,需要在代码中手动转化

(3输出数据:不管是java或是jsp都支持多种数据类型的直接输出。

表现层另外一个数据处理是:数据校验,分为客户校验和服务器端校验

3. Struts2内置的类型转换

a)      String和boolean 完成字符串与布尔值之间的转换

b)      String和char  往常字符串与字符之间的转换

c)      String和int、Integer 完成字符串与整型之间的转换

d)      String和Long 完成字符串与长整型值之间的转换

e)      String和double、Double 完成字符串与双精度浮点值的转换

f)      String和Float 完成字符串和单精度浮点之间的转换

g)      String和Date 完成字符串和日期类型之间的转换,日期格式使用格式用户请求所在Locale的SHORT格式

h)      String和数组 在默认的情况,数组元素是字符串,如果用户定义类型转换器,也可以是其它复合数据类型

i)      String和Map、List

 

二  类型转换的实例:

1.是注册页面:

<div>

           <h2>

              strtus2类型转换实例

           </h2>

           <form action="${pageContext.request.contextPath}/reg/reg.action"

              method="post">

              用户名:

              <input type="text" name="uname" /><br/>

              年龄:

              <input type="text" name="uage" /><br/>

              薪资:

              <input type="text" name="usalary" /><br/>

              出生日期:

              <input type="text" name="ubrith" /><br/>

              婚否:

              <input type="radio" name="umarry" value="true" />

              已婚

              <input type="radio" name="umarry" value="false" />

              未婚

              <input type="submit" value="注册" />

           </form>

       </div>

 

  2. 封装一个注册的类,来设置set和get方法,用来接收jsp页面传过来的值。封装person.java类,因为只是测试转换的结果,所以直接字PersonAction中充当action类 ,来输出

 

package cn.csdn.hr.action;

 

import java.util.Date;

 

import com.opensymphony.xwork2.ActionSupport;

 

public class PersonAction extends ActionSupport {

    private static final long serialVersionUID = 1L;

    private String uname;

    private Integer uage;

    private Double usalary;

    private Date ubrith;

    private boolean umarry;

 

    public PersonAction() {

       super();

       // TODO Auto-generated constructor stub

    }

 

    public String getUname() {

       return uname;

    }

 

    public void setUname(String uname) {

       this.uname = uname;

    }

 

    public Integer getUage() {

       return uage;

    }

 

    public void setUage(Integer uage) {

       this.uage = uage;

    }

 

    public Double getUsalary() {

       return usalary;

    }

 

    public void setUsalary(Double usalary) {

       this.usalary = usalary;

    }

 

    public Date getUbrith() {

       return ubrith;

    }

 

    public void setUbrith(Date ubrith) {

       this.ubrith = ubrith;

    }

 

    public boolean isUmarry() {

       return umarry;

    }

 

    public void setUmarry(boolean umarry) {

       this.umarry = umarry;

    }

 

    @Override

    public String toString() {

       return "PersonAction [uage=" + uage + ", ubrith=" + ubrith

              + ", umarry=" + umarry + ", uname=" + uname + ", usalary="

              + usalary + "]";

    }

 

    public String reg() {

       System.out.println(toString());

       return SUCCESS;

 

    }

}

3.在strtus.xml中来接收从jsp中传过来的值

<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <!-- package的name必须是唯一的 -->

    <package name="person" extends="struts-default" namespace="/reg">

        action name="reg" class="cn.csdn.hr.action.PersonAction" method="reg">

           <result>../regin.jsp</result>

       </action>

    </package>

</struts>

 

 

注意在输入日期的时候要注意格式为:2011-10-10

 

 

 

 

 

 

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值