Struts2 基本数据类型转换的例子 详解析
来源:互联网 发布:淘宝店铺会员卡删除 编辑:程序博客网 时间:2024/05/20 19:30
对int boolean double等Java基本数据类型,是struts2自带的类型转换拦截器自动完成类型转换的,即"类型转换"是由系统自动完成的。
最终目录结构:
上源码:
addMaterial.jsp:
<%@ page language="java" pageEncoding="gb2312"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><!-- struts2标签库调用声明 --><%@taglib prefix="s" uri="/struts-tags"%><%@ taglib prefix="sx" uri="/struts-dojo-tags" %><html><head><title>添加材料</title><s:head /><sx:head /></head><body><h3 align="left"> Struts2类型转换使用范例 </h3><!-- 材料输入表单 --><table><s:form id="materialForm" action="addMaterial"><s:textfield name="material.material" label="材料名"></s:textfield> <s:textfield name ="material.bid" label="价格"></s:textfield><s:textfield name ="material.mount" label="库存量"></s:textfield><sx:datetimepicker name ="material.expireDate" label="过期日期"></sx:datetimepicker><s:submit value="提交"></s:submit></s:form></table></body></html>
注释:表单form中action="addMaterial",即提交到此action处理,由struts.xml导航。注意传递的name为material.xxx。当然,要使material.xxx意义有效,在下面的Action类中必须定义setMaterial()方法实现'注入' 并定义Material类的相应xxx属性。
struts.xml:
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><constant name="struts.i18n.encoding" value="GBK"/> <package name="Convert" extends="struts-default"> <action name="addMaterial" class="com.action.AddMaterialAction"> <result name="input">/jsp/addMaterial.jsp</result> <result name="success">/jsp/showMaterial.jsp</result> </action> </package></struts>
注释:配置文件struts.xml对页面进行导航,匹配action:"addMaterial",交由Action类:AddMaterialAction.java实际处理,处理后导航到相应的结果页面。
addMaterialAction.java:
package com.action;import com.model.Material;import com.opensymphony.xwork2.ActionSupport;public class AddMaterialAction extends ActionSupport {//属性类型需要类型转换的对象private Material material;public Material getMaterial() {return material;}public void setMaterial(Material material) {this.material = material;}public String execute() throws Exception {return SUCCESS;}}
注释:此Action类处理提交过来的表单数据。如<s:textfield name="material.bid" label="价格"></s:textfield>,如果在表单中填入的数据为"198.8",则是将name="material.bid",value="198.8" 提交给此Action类处理。通过setMaterial(Material material),将材料类Material的实例material的实例属性bid的值设为"198.8"。
Material.java:
package com.model;import java.util.Date;public class Material implements java.io.Serializable {// Fieldsprivate String material;private double bid;private int mount;private Date expireDate;public Material() {}public double getBid() {return bid;}public void setBid(double bid) {this.bid = bid;}public int getMount() {return mount;}public void setMount(int mount) {this.mount = mount;}public String getMaterial() {return this.material;}public void setMaterial(String material) {this.material = material;}public Date getExpireDate() {return expireDate;}public void setExpireDate(Date expireDate) {this.expireDate = expireDate;}}
showMaterial.jsp:
<%@ page language="java" pageEncoding="gb2312"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><!-- struts2标签库调用声明 --><%@taglib prefix="s" uri="/struts-tags"%><html> <head> <title>添加材料</title> <s:head /> </head> <body> <h3 align="left"> Struts2类型转换使用范例 </h3> <!-- 材料数据显示 --> <table> 材料名: <s:property value="material.material" ></s:property> 价格: <s:property value="material.bid" ></s:property> 库存量: <s:property value="material.mount" ></s:property> 过期日期: <s:property value="material.expireDate" ></s:property> </table> </body></html>
注释:注意value="material.xxx",因为Action类处理的是material实例,此处是通过material实例来访问其属性的。
转换过程:在页面按"提交"按钮后,就相当于"setMaterial()"方法。在系统根据struts.xml配置文件执行Action之前,Struts2自带的类型转换拦截器就已经将Material对象中几个属性变量的类型由页面上输入时的String类型转换为Material对象属性变量被定义的数据类型。对数据处理完成后,在页面上显示数据时,是上述操作的逆过程,即完成数据原来的数据类型转换为String类型,然后显示于页面上。
实际上在开发工作中,除非有根据特殊需求需要类型转换之外,在Struts2中绝大部分类型转换都已经由Struts2自己完成。
运行 http://localhost:8080/Convert/jsp/addMaterial.jsp :
“提交”后结果:
- Struts2 基本数据类型转换的例子 详解析
- 基本的数据类型转换
- 基本数据类型的转换
- 基本数据类型的转换
- Struts2的类型转换(一)基本数据类型和抽象数据类型
- struts2(七)数据类型转换详解
- 细谈struts2(七)数据类型转换详解
- Struts2总结---数据类型转换详解 (4)
- Java基本数据类型的转换
- Java基本数据类型的转换
- 基本数据类型转换的陷阱
- 一、基本数据类型的转换
- android基本数据类型的转换
- 基本数据类型之间的转换
- java基本数据类型的转换
- 数据类型及基本数据类型间的转换
- 基本数据类型包装数据类型之间的转换
- Java的基本数据类型详解
- tslib-master移植
- 语法错误 : 缺少“;”(在“类型”的前面)的解决方案
- atoi程序
- STM32之SysTick嘀嗒定时器
- Linux常用解压缩命令
- Struts2 基本数据类型转换的例子 详解析
- 基于mini2440的USB视频采集
- JS基础
- 一步步用python制作游戏外挂
- 求和为某正整数的所有正整数集合
- JS window.open
- ognl.OgnlException: target is null for setProperty(null, "y", [Ljava.lang.String;@1d57c7)
- 这样一个3D时代
- BiTree 二叉树 基础算法及常见题目总结