- 浏览: 681666 次
- 性别:
- 来自: 上海
最新评论
-
TheUniqueGirl:
Tomcat系统架构与设计模式:http://www.doci ...
Tomcat -
aykjy:
...
UML常见工具之NetBeans(downmoon) -
不老肖邦:
谢谢提供的简单示例
JAVA toString()
struts2 已经为我们提供了几乎所有的primitive类型以及常用类型(如Date)的类型转换器,我们也可以为我们自己的类型添加转换器,struts2为我们提供了一个类型转换器的接口:org.apache.struts2.util.trutsTypeConverter,这是一个抽象类,继承自ongl.DefaultTypeConverter,你也可以直接继承DefaultTypeConverter定义自己的转换器,但是strutsTypeConverter提供了更简单以及更好理解的方式,下面我们写一个自己的转换器:这个转换器的用处是把姓名转换成一个姓和名的类型,前端的输入为"名_姓"如:chengbao_zhu
Name 类如下:
Java代码
package example.bean;
public class Name {
private String firstName;
private String familyName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getFamilyName() {
return familyName;
}
public void setFamilyName(String familyName) {
this.familyName = familyName;
}
}
Action类
Java代码
/*** NameAction.java ***/
package example.action;
import com.opensymphony.xwork2.ActionSupport;
import example.bean.Name;
public class NameAction extends ActionSupport{
private Name name;
@Override
public String execute() throws Exception {
return SUCCESS;//SUCCESS 是Action接口的一个常量"success"
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
}
接下来就是我们自定义的类型转换器啦
Java代码
package example.converter;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import example.bean.Name;
public class NameConverter extends StrutsTypeConverter {
/**
* 从String转换为自己的类型
*/
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
Name name = new Name();
//这里我们用的分隔符为"_"
String[] nameParams = values[0].split("_");
String firstName = nameParams[0];
String familyName = nameParams[1];
name.setFirstName(firstName);
name.setFamilyName(familyName);
return name;
}
/**
* 从自定义的类型转换为String以供显示
*/
@Override
public String convertToString(Map context, Object o) {
Name name = (Name) o;
String nameStr = "**" + name.getFirstName() + "_"
+ name.getFamilyName() + "**";
return nameStr;
}
}
下面是输入页面name.jsp:
Html代码
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Input your name</title>
</head>
<body>
<s:form action="nameConverter">
<s:textfield name="name"></s:textfield>
<s:submit value="提交改名"></s:submit>
</s:form>
</body>
</html>
配置struts.xml,struts.xml必需放在classpath下面
Xml代码
<?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="example" extends="struts-default">
<action name="nameConverter" class="example.action.NameAction">
<result name="success">/displayName.jsp</result>
</action>
</package>
</struts>
如果成功的话则会跳转到displayName.jsp页面显示姓名信息
Html代码
/*** displayName.jsp 页面代码 **/
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Display</title>
</head>
<body>
Your Name = <s:property value="name"/>
</body>
</html>
至此,全部的基本配置已经完毕,接下来的问题是:如何让NameAction知道name属性要使用自定义的类型转换器呢,这里有两个方式:
打开name.jsp输入 "chengbao_zhu" 程序会跳转到displayName.jsp并显示出下面的字符串:
Java代码
Your Name = **chengbao_zhu**
呵呵,这也算一个基本完整的struts2流程啦
Name 类如下:
Java代码
package example.bean;
public class Name {
private String firstName;
private String familyName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getFamilyName() {
return familyName;
}
public void setFamilyName(String familyName) {
this.familyName = familyName;
}
}
Action类
Java代码
/*** NameAction.java ***/
package example.action;
import com.opensymphony.xwork2.ActionSupport;
import example.bean.Name;
public class NameAction extends ActionSupport{
private Name name;
@Override
public String execute() throws Exception {
return SUCCESS;//SUCCESS 是Action接口的一个常量"success"
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
}
接下来就是我们自定义的类型转换器啦
Java代码
package example.converter;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import example.bean.Name;
public class NameConverter extends StrutsTypeConverter {
/**
* 从String转换为自己的类型
*/
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
Name name = new Name();
//这里我们用的分隔符为"_"
String[] nameParams = values[0].split("_");
String firstName = nameParams[0];
String familyName = nameParams[1];
name.setFirstName(firstName);
name.setFamilyName(familyName);
return name;
}
/**
* 从自定义的类型转换为String以供显示
*/
@Override
public String convertToString(Map context, Object o) {
Name name = (Name) o;
String nameStr = "**" + name.getFirstName() + "_"
+ name.getFamilyName() + "**";
return nameStr;
}
}
下面是输入页面name.jsp:
Html代码
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Input your name</title>
</head>
<body>
<s:form action="nameConverter">
<s:textfield name="name"></s:textfield>
<s:submit value="提交改名"></s:submit>
</s:form>
</body>
</html>
配置struts.xml,struts.xml必需放在classpath下面
Xml代码
<?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="example" extends="struts-default">
<action name="nameConverter" class="example.action.NameAction">
<result name="success">/displayName.jsp</result>
</action>
</package>
</struts>
如果成功的话则会跳转到displayName.jsp页面显示姓名信息
Html代码
/*** displayName.jsp 页面代码 **/
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Display</title>
</head>
<body>
Your Name = <s:property value="name"/>
</body>
</html>
至此,全部的基本配置已经完毕,接下来的问题是:如何让NameAction知道name属性要使用自定义的类型转换器呢,这里有两个方式:
全局:在classpath下新建文件xwork-conversion.properties,内容如下
Java代码
example.bean.Name = example.converter.NameConverter
这样子的话,所有Name类型都会使用这个转换器进行类型转换
局部:在相应的Action目录下如NameAction的目录下,新建文件,文件名为:
Java代码
Action名-conversion.properties
如NameAction的文件名为:NameAction-conversion.properties
文件内容为:name(NameAction的属性名)=example.converter.NameConverter
打开name.jsp输入 "chengbao_zhu" 程序会跳转到displayName.jsp并显示出下面的字符串:
Java代码
Your Name = **chengbao_zhu**
呵呵,这也算一个基本完整的struts2流程啦
发表评论
-
Myeclipse的tyry catch 怎么让它自动生成
2011-03-21 19:58 1604方法1:选择代码段,右键单击,选择Surround Wit ... -
深入Struts2
2011-02-24 21:24 7821.深入Struts2的配置文件 本部分主要介绍struts ... -
Struts教程
2011-02-24 22:11 964概述 本文主要讲解什么是Struts Frame ... -
Action接收参数的3种方式(属性,域模型,模型驱动,struts2.1.8)
2011-02-24 22:32 1640常用第一种跟第二种 1.Action属性传参数: ... -
struts2采用域模型方式接收参数
2011-02-24 22:38 983struts.xml: <struts&g ... -
Hibernate学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来
2011-02-25 14:10 1209准备:建表 用MySQL在名为STMS数据库 ... -
在MyEclipse下如何添加hibernate支持(2)
2011-02-25 14:26 1143在上一篇文章里我们已经成功的为项目添加了hib ... -
在MyEclipse下如何添加hibernate支持(1)
2011-02-25 14:26 1642在网络资源中有很多S2HS整合的文档和教程,但是真正适 ... -
Struts2+Spring+Hibernate搭建全解!
2011-02-26 20:46 734Struts2+Spring+Hibernate是J2 ... -
struts2拦截器详解实例
2011-03-21 16:11 1036struts.xml <?xml version=&qu ... -
Struts2拦截器配置
2011-03-21 11:25 1365拦截器(interceptor)是Struts2最强大的特性之 ... -
Struts2使用之拦截器实例
2011-03-21 11:16 919实例一:防止表单重复提交 防止重复提交:有两种方法:一是使用 ... -
Struts2拦截器配置
2011-03-21 11:11 1269Struts2框架的大部分功能都是通过拦截器来完成的。默认情况 ... -
struts开发小结
2011-03-20 21:27 866<%@ page language="java ... -
数据校验DataValiation
2011-03-20 14:46 874struts.xml <?xml version=&qu ... -
JAVA Calendar详解
2011-03-20 14:00 788(在文章的最后,将会介绍Date类,如果有兴趣,可以直接翻到最 ... -
struts tags小结
2011-03-20 10:47 1572struts.xml <?xml version=&q ... -
ongl表达式用法
2011-03-19 21:39 1149struts.xml <?xml version=&qu ... -
action向其他页面传参数
2011-03-19 16:24 1384struts.xml <?xml version=&qu ... -
动态结果集DynamicResult
2011-03-19 16:04 888struts.xml <?xml version=&qu ...
相关推荐
Struts2自定义类型转换
struts2 自定义类型转换器,实现一个对象转换成一个int 坐标值。
myeclipse平台下使用struts2.3框架搭建实例,理解struts2工作原理,了解struts2自定义类型转换,自定义拦截器,掌握struts2的mvc框架应用
对于Struts1和Struts2中都讲到了自定义类型转换器。但是有些人可能对自定义类型转换器的运行原理不理解,这里进行简单介绍一下……
struts 2.0 自定义类型转换器 注册类型转换器 入门实例 简单实例
Struts2自定义类型转换器 如果用户登陆后,可以访问Action中的所有方法,如果用户没有登陆,不允许访问Action中的方法。并且提示你没有权限执行该操作!
熟悉和掌握Struts2自定义类型转换。 熟悉和掌握Struts2内建校验的操作方法 实验环境与设备: 已经接入局域网的网络实验室,机器上装有IE浏览器等; strtus2.5.8 实验内容: (1) 编写一个...
之前发布struts2的转换,只是利用struts2内部类实现,这个是自定义的转换类,不是很难,很容易理解
适合struts2入门使用,主要是struts拦截到的数据类型转换的问题
struts2如何配置与自定义类型转换struts2如何配置与自定义类型转换
Struts的自定义转换器 public class LineConvertor extends StrutsTypeConverter{...}
Struts 自定义转换器Struts 自定义转换器
传智播客struts2.1源代码_自定义类型转换器
Struts2的自动类型转换及自定义类型转换[文].pdf
1、 理解Struts2的类型转换类型 2、 理解局部类型转换器与全局类型转换器的区别 3、 掌握Struts2的自定义类型转换 4、 理解OGNL表达式语言
类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行...下面这篇文章主要给大家介绍了关于Struts2学习教程之自定义类型转换器的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
struts2 将要进行自定义类型转换的点数据从1个增加到3个 struts3 进行全局的类型转换 struts4 使用Struts2中内部类中的方法进行自定义类型转换,用到的类StrutsTypeConverter struts5 增加集合类型,使用范型 ...
对于基本数据类型 strus2可以自动的将其转换成所需要的类型,但是我们自己定义的引用数据类型无法转换,本文详细介绍了strus2的自定义类型转换器
主要介绍了关于Struts2类型转换的相关资料,文中主要介绍了Struts2的类型转换器和自定义类型转换器的实现,有需要的朋友可以参考借鉴,下面来一起看看吧。