1、新建一个web项目,struts2;
2、在WebRoot目录下,新建一个input.jsp文件;
input.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>输出页面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
point:<s:property value="point"/>
age:<s:property value="age"/>
username:<s:property value="username"/>
date:<s:property value="date"/>
</body>
</html>
3、找到src文件,在其下新建一个Java包com.you.converter,并在该包下新建一个Class,PointConverter;
PointConverter.java:
/**
* @Title:PointConverter.java
* @Package:com.you.converter
* @Description:字符串转化
* @author:Youhaidong(游海东)
* @date:2013-7-1 下午10:51:41
* @version V1.0
*/
package com.you.converter;
import java.util.Map;
import com.you.bean.Point;
import ognl.DefaultTypeConverter;
/**
* 类功能说明
* 类修改者 修改日期
* 修改说明
* <p>Title:PointConverter.java</p>
* <p>Description:游海东个人开发</p>
* <p>Copyright:Copyright(c)2013</p>
* @author:游海东
* @date:2013-7-1 下午10:51:41
* @version V1.0
*/
public class PointConverter extends DefaultTypeConverter {
/* (non-Javadoc)
* <p>Title:convertValue</p>
* <p>Description:</p>
* @param context
* @param value
* @param toType
* @return
* @see ognl.DefaultTypeConverter#convertValue(java.util.Map, java.lang.Object, java.lang.Class)
*/
@Override
public Object convertValue(Map context, Object value, Class toType) {
if(Point.class == toType)
{
//
Point point = new Point();
//
String[] str = (String[])value;
//字符串数组
String[] paramValues = str[0].split(",");
//
int x = Integer.parseInt(paramValues[0]);
//
int y = Integer.parseInt(paramValues[1]);
//给x,y设置值
point.setX(x);
point.setY(y);
return point;
}
if(String.class == toType)
{
Point point = (Point)value;
int x = point.getX();
int y = point.getY();
String result = "[x =" + x + ",y=" + y + "]";
return result;
}
return null;
}
}
4、再新建一个com.you.struts包,并在其中新建一个PointAction;
PointAction.java:
/**
* @Title:PointAction.java
* @Package:com.you.struts
* @Description:转化类
* @author:Youhaidong(游海东)
* @date:2013-7-1 下午11:08:00
* @version V1.0
*/
package com.you.struts;
import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
import com.you.bean.Point;
/**
* 类功能说明
* 类修改者 修改日期
* 修改说明
* <p>Title:PointAction.java</p>
* <p>Description:游海东个人开发</p>
* <p>Copyright:Copyright(c)2013</p>
* @author:游海东
* @date:2013-7-1 下午11:08:00
* @version V1.0
*/
public class PointAction extends ActionSupport {
/**
* @Fields serialVersionUID:序列号
*/
private static final long serialVersionUID = 1L;
private Point point;
private int age;
private String username;
private Date date;
/* (non-Javadoc)
* <p>Title:execute</p>
* <p>Description:</p>
* @return
* @throws Exception
* @see com.opensymphony.xwork2.ActionSupport#execute()
*/
@Override
public String execute() throws Exception {
return SUCCESS;
}
public Point getPoint() {
return point;
}
public void setPoint(Point point) {
this.point = point;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
5、新建输出output.jsp
output.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>输出页面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
point:<s:property value="point"/>
age:<s:property value="age"/>
username:<s:property value="username"/>
date:<s:property value="date"/>
</body>
</html>
6、配置struts.xml
struts.xml:
<action name="pointCoverter" class="com.you.struts.PointAction">
<result name="success">/output.jsp</result>
</action>
7、在com.you.struts新建一个文件,PointAction-conversion.properties;
##PointConverter
point=com.you.converter.PointConverter
8、运行struts2,在地址栏输入:http://localhost:8080/struts2/input.jsp
9、点击“submit”,出现如下图:
10、文件路径如下:
分享到:
相关推荐
Struts2是一个流行的Java web开发框架,其核心是Action,而类型转换是Struts2处理用户输入数据的一个重要环节。Struts2内置了多种类型转换,可以将HTTP请求中的字符串数据转换为各种基本类型和复杂类型,如日期、...
本篇文章将深入探讨Struts2中的类型转换机制。 1. **类型转换的概念** 类型转换是指将一个数据类型的值转换为另一个数据类型的过程。在网络请求中,用户输入的数据通常是字符串类型,而服务器端的Action类属性可能...
在Struts2中,类型转换器(Type Converter)是框架的一个关键特性,用于处理Action类中属性的自动类型转换。这个特性使得开发者无需手动进行数据类型之间的转换,从而提高了开发效率和代码的可读性。 标题中的...
Struts2是一个强大的MVC框架,它在处理Web应用程序时提供了许多便利,其中包括类型转换功能。类型转换是将用户输入的数据自动转化为服务器端处理所需的类型,这样可以避免手动转换带来的繁琐工作。本篇文章将深入...
其中,类型转换(Type Conversion)是Struts2框架中的一个重要功能,它负责将HTTP请求参数转化为Action类中相应属性的类型。这篇博客文章“Struts2类型转换深入总结”将深入探讨这一主题。 在Struts2中,类型转换...
### Struts2类型转换与验证流程详解 #### Struts2框架概述 Struts2是一个用于构建企业级Java Web应用的强大框架。它集成了MVC设计模式,并提供了丰富的插件支持和灵活的配置选项。在Struts2中,类型转换和验证机制...
Struts2框架提供了一种机制,即类型转换器(Type Converter),用于自动将请求参数转化为预期的数据类型。 在Struts2中,实现类型转换主要有两种方式: 1. 使用内置的类型转换器:Struts2已经内置了一些常见的类型...
在Struts2中,类型转换和国际化是两个重要的特性,用于处理数据类型之间的转换以及多语言环境下的内容显示。 **类型转换**是Struts2处理请求参数与Action类属性之间数据类型不匹配的过程。当用户通过表单提交请求时...
本实例主要探讨了在Struts2中进行类型转换的三种方法:局部类型转换、全局类型转换以及大量数据类型的转换。对于初学者来说,理解并掌握这些转换方式至关重要,因为它们能够帮助我们处理用户输入的数据,并将其转化...
Struts2内置了一套类型转换机制,能够自动将字符串数据转化为预设的类型。如果默认的转换器无法满足需求,开发者可以自定义转换器,通过实现`Converter`接口并注册到配置中,来实现特定类型的转换。 接下来,我们...
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
struts2类型转换机制
Struts2是一个强大的MVC框架,它在处理用户请求时提供了丰富的功能,其中包括类型转换(Converter)。类型转换是Struts2框架中一个重要的特性,它允许我们把前端表单提交的数据自动转换为后端Java对象的属性。在这个...
熟悉和掌握Struts2自定义类型转换。 熟悉和掌握Struts2内建校验的操作方法 实验环境与设备: 已经接入局域网的网络实验室,机器上装有IE浏览器等; strtus2.5.8 实验内容: (1) 编写一个...
2. **自定义转换器**:如果需要处理特殊类型或有特定转换规则,可以通过实现`org.apache.struts2.util.TypeConverter`接口创建自定义转换器,并通过`@Result`注解或者`struts.xml`配置文件进行注册。 3. **转换异常*...
《STRUTS2类型转换错误导致OGNL表达式注入漏洞分析》 STRUTS2框架在处理用户输入时出现的类型转换错误,可能导致OGNL(Object-Graph Navigation Language)表达式注入漏洞。此漏洞允许攻击者通过精心构造的输入,...