您的位置:首页 > 编程语言 > Java开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: