Struts2-类型转换器-Converter
2016-09-29 16:53
344 查看
项目结构如下:
1、配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Struts2-test-3-zh</display-name>
<filter>
<filter-name>Struts2-test-3-zh</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2-test-3-zh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
2、编写jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<s:form action="user.action" method="post">
<s:textfield name="user" label="用户"></s:textfield>
<s:textfield name="user" label="性别"></s:textfield>
<s:textfield name="user" label="邮件"></s:textfield>
<s:submit value="注册"></s:submit>
</s:form>
</body>
</html>
3、实体对象
/*
*@Author swxctx
*@time 2016年9月29日
*/
package com.sw.bean;
public class User {
private String name;
private String sex;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
4、action文件
/*
*@Author swxctx
*@time 2016年9月29日
*/
package com.sw.action;
import com.opensymphony.xwork2.ActionSupport;
import com.sw.bean.User;
public class UserAction extends ActionSupport {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("姓名:"+user.getName());
System.out.println("性别:"+user.getSex());
System.out.println("邮件:"+user.getEmail());
return "success";
}
}
5、类型转换
/*
*@Author swxctx
*@time 2016年9月29日
*/
package com.sw.converter;
import java.util.Map;
import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
import com.sw.bean.User;
public class UserConverter extends DefaultTypeConverter {
@Override
public Object convertValue(Map<String, Object> context, Object value, Class toType) {
// TODO Auto-generated method stub
//页面到后台
System.out.println("--start--");
//将字符串转化为user对象的
if(toType==User.class){
//系统请求参数为字符串数组
String params[]=(String[])value;
//创建user实例
User user=new User();
//赋值
user.setName(params[0]);
user.setSex(params[1]);
user.setEmail(params[2]);
return user;
}
else if(toType==String.class){
//后台到页面
//强制转换
User user=(User)value;
System.out.println("-------------");
return "<"+user.getName()+","+user.getSex()+","+user.getEmail()+">";
}
return null;
}
}
6、struts.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="Strute2-test-3-zh" extends="struts-default">
<action name="user" class="com.sw.action.UserAction">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
7、注册类型转换
文件名:xwork-conversion.properties
内容:com.sw.bean.User=com.sw.converter.UserConverter
1、配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Struts2-test-3-zh</display-name>
<filter>
<filter-name>Struts2-test-3-zh</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2-test-3-zh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
2、编写jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<s:form action="user.action" method="post">
<s:textfield name="user" label="用户"></s:textfield>
<s:textfield name="user" label="性别"></s:textfield>
<s:textfield name="user" label="邮件"></s:textfield>
<s:submit value="注册"></s:submit>
</s:form>
</body>
</html>
3、实体对象
/*
*@Author swxctx
*@time 2016年9月29日
*/
package com.sw.bean;
public class User {
private String name;
private String sex;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
4、action文件
/*
*@Author swxctx
*@time 2016年9月29日
*/
package com.sw.action;
import com.opensymphony.xwork2.ActionSupport;
import com.sw.bean.User;
public class UserAction extends ActionSupport {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("姓名:"+user.getName());
System.out.println("性别:"+user.getSex());
System.out.println("邮件:"+user.getEmail());
return "success";
}
}
5、类型转换
/*
*@Author swxctx
*@time 2016年9月29日
*/
package com.sw.converter;
import java.util.Map;
import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
import com.sw.bean.User;
public class UserConverter extends DefaultTypeConverter {
@Override
public Object convertValue(Map<String, Object> context, Object value, Class toType) {
// TODO Auto-generated method stub
//页面到后台
System.out.println("--start--");
//将字符串转化为user对象的
if(toType==User.class){
//系统请求参数为字符串数组
String params[]=(String[])value;
//创建user实例
User user=new User();
//赋值
user.setName(params[0]);
user.setSex(params[1]);
user.setEmail(params[2]);
return user;
}
else if(toType==String.class){
//后台到页面
//强制转换
User user=(User)value;
System.out.println("-------------");
return "<"+user.getName()+","+user.getSex()+","+user.getEmail()+">";
}
return null;
}
}
6、struts.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="Strute2-test-3-zh" extends="struts-default">
<action name="user" class="com.sw.action.UserAction">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
7、注册类型转换
文件名:xwork-conversion.properties
内容:com.sw.bean.User=com.sw.converter.UserConverter
相关文章推荐
- struts2自定义类型转换(1)基于DefaultTypeConverter
- struts2自定义类型转换(1)基于DefaultTypeConverter
- Struts2类型转换TypeConverter源码阅读笔记
- Struts2——基于StrutsTypeConverter的类型转换
- struts2自定义类型转换(2)基于StrutsTypeConverter
- struts2自定义类型转换(2)基于StrutsTypeConverter
- struts2自定义类型转换(2)基于StrutsTypeConverter
- struts2自定义类型转换(1)基于DefaultTypeConverter
- struts2日期类型转换,继承StrutsTypeConverter
- struts2学习(一)类型转换--DefaultTypeConverter
- struts2的类型转换
- Struts2类型转换 笔记
- 总结2:Struts2类型转换
- 自定义struts2类型转换的全局与局部错误信息。
- 扩展Converter的转换类型
- struts2的一些用法(二):类型转换
- struts2的类型转换
- Struts2中的类型转换
- Struts2学习笔记5:Struts2类型转换续二
- struts2日期类型转换