1、页面表单数据的封装处理类
package com.hf.sfm.util;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.log4j.Logger;
/**
* 封装所有页面提交的参数
*
* @author Dream
*/
public class Buffers {
// 保存页面提交的参数的名称和值
ArrayList<HashMap<String, Object>> paramsNameAndValueList;
// 保存要从页面提交的参数名称和类型
ArrayList<HashMap<String, String>> paramsNameAndTypeList;
// 记录日志
Logger log;
public Buffers() {
paramsNameAndValueList = new ArrayList<HashMap<String, Object>>();
paramsNameAndTypeList = new ArrayList<HashMap<String, String>>();
log = Logger.getLogger(Buffers.class);
}
/**
* 将页面提交的参数封装到buffer中
*
* @param request
* @param session
*/
public void assembly(HttpServletRequest request, HttpSession session) {
loadParams(request);
// 装配request范围内的参数
if (request != null) {
// 一条参数名称和类型
HashMap<String, String> nameMap = new HashMap<String, String>();
// 一条参数名称和实际值
HashMap<String, Object> valueMap = new HashMap<String, Object>();
for (int i = 0; i < paramsNameAndTypeList.size(); i++) {
nameMap = paramsNameAndTypeList.get(i);
String paramName = nameMap.get("paramName");
Object paramValue = request.getParameter(paramName);
if (paramName != null && paramValue != null) {
valueMap.put(paramName, paramValue);
}
paramsNameAndValueList.add(valueMap);
}
}
// 装配session范围内的参数
if (session != null) {
// 一条参数名称和类型
HashMap<String, String> nameMap = new HashMap<String, String>();
// 一条参数名称和实际值
HashMap<String, Object> valueMap = new HashMap<String, Object>();
for (int i = 0; i < paramsNameAndTypeList.size(); i++) {
nameMap = paramsNameAndTypeList.get(i);
String paramName = nameMap.get("paramName");
Object paramValue = session.getAttribute(paramName);
if (paramName != null && paramValue != null) {
valueMap.put(paramName, paramValue);
}
paramsNameAndValueList.add(valueMap);
}
}
}
/**
* 从params.xml中读取页面提交的参数名称和类型 每个参数占一行,如name,string
*/
public void loadParams(HttpServletRequest request) {
String basepath = request.getRealPath("");
String filePath = basepath + "/WEB-INF/classes/params.flds";
File file = new File(filePath);
try {
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
HashMap<String, String> map = new HashMap<String, String>();
String[] lineArray = line.split(",");
String paramName = lineArray[0];
String paramType = lineArray[1];
map.put("paramName", paramName);
map.put("paramType", paramType);
paramsNameAndTypeList.add(map);
}
} catch (FileNotFoundException e) {
log.error("Buffers loadParams(),文件未找到");
e.printStackTrace();
} catch (IOException e) {
log.error("Buffers loadParams(),读取行失败");
e.printStackTrace();
}
}
/**
* 根据参数名称,获取参数实际值
*
* @param paramName
* @return 参数实际值,类型为String
*/
public String getString(String paramName) {
String resultString = "";
// 一条参数名称和实际值
HashMap<String, Object> valueMap = new HashMap<String, Object>();
for (int i = 0; i < paramsNameAndValueList.size(); i++) {
valueMap = paramsNameAndValueList.get(i);
if (valueMap.get(paramName) != null) {
resultString = valueMap.get(paramName).toString();
}
}
return resultString;
}
/**
* 根据参数名称,获取参数实际值
*
* @param paramName
* @return 参数实际值,类型为int
*/
public int getInt(String paramName) {
int resultInt = 0;
// 一条参数名称和实际值
HashMap<String, Object> valueMap = new HashMap<String, Object>();
for (int i = 0; i < paramsNameAndValueList.size(); i++) {
valueMap = paramsNameAndValueList.get(i);
if (valueMap.get(paramName) != null) {
resultInt = Integer
.parseInt(valueMap.get(paramName).toString());
}
}
return resultInt;
}
/**
* 根据参数名称,获取参数实际值
* @param paramName
* @return 参数实际值,类型为对象
* @throws IllegalAccessException
* @throws InstantiationException
*/
public Object getObject(Class clazz) {
Object obj = new Object();
try {
obj = clazz.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
// 获取属性集
Field[] fields = clazz.getDeclaredFields();
for (Iterator it = paramsNameAndValueList.iterator(); it.hasNext();) {
HashMap tradetype = (HashMap) it.next();
for (int i = 0; i <= fields.length - 1; i++) {
//一条参数,包括名称、类型、值
String paramName = fields[i].getName();
String paramType = fields[i].getType().getName();
Object paramValue = tradetype.get(paramName);
if (tradetype.containsKey(paramName)) {
try {
if (paramValue != null) {
if (paramType == "java.lang.String") {
PropertyUtils.setProperty(obj,paramName,paramValue.toString());
} else if (paramType == "java.lang.Integer" || paramType == "int") {
PropertyUtils.setProperty(obj,paramName,new Integer(paramValue.toString()));
}
}
} catch (InvocationTargetException e) {
throw new RuntimeException(e);
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}
}
return obj;
}
}
2、参数文件
params.flds
userName,String
password,String
age,int
分享到:
相关推荐
3. **数据序列化**:将表单数据转换为适合发送的格式,如JSON。 4. **处理响应**:接收服务器返回的验证结果,根据结果更新界面状态。 5. **错误处理**:捕获并处理可能发生的错误,如网络问题或服务器错误。 以下...
- **隐藏数据**:POST方法将表单数据封装在HTTP请求的正文中,而不是像GET那样附加在URL后面。这意味着数据不会直接显示在URL中,提高了数据的私密性。 - **数据获取**:服务器端通过`Request.Form`来访问提交的数据...
确保使用POST请求,并将表单数据序列化为JSON格式。 4. **异步处理**: 使用异步请求可以保持界面的响应性,同时显示加载指示器以告知用户数据正在处理。当服务器返回响应时,根据返回的状态码和消息进行相应的...
6. **AJAX提交**: 为了提供更好的用户体验,xForm可能会使用AJAX技术异步提交表单数据,这样无需刷新页面,用户就能看到反馈结果。 7. **响应式设计**: 现代网页需要适应不同设备和屏幕尺寸,xForm可能包含了响应式...
在AS3中,你可以将表单数据封装成JSON或XML格式。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。XML(eXtensible Markup Language)则是一种更结构...
要将这些表单数据封装成JSON格式,我们需要在JavaScript中进行操作。我们可以使用`FormData`对象来获取表单中的所有数据,然后利用`jQuery`或者原生JavaScript的`querySelectorAll`等方法遍历表单元素,将每个字段的...
在这个“Struts2五种数据封装Demo”中,我们将深入探讨Struts2的数据封装机制,以及如何通过配置文件来操作Servlet的三大核心对象——Request、Session和Application。同时,我们还将了解如何从表单中获取数据并进行...
这个"struts2数据封装源码"很可能是为了演示如何在Struts2框架下处理用户输入数据并进行封装的过程。在Struts2中,数据封装是通过Action类和模型对象(通常称为POJOs,Plain Old Java Objects)来实现的,这使得业务...
JQuery将Ajax数据请求进行了封装,从而使得该操作实现起来容易许多。以往我们要写很多的代码来实现该功能,现在只需要调用$.ajax()... 首先,在客户端,通过JavaScript脚本将页面表单数据封装成JSON格式。GetJsonData
这篇博客“使用AJAX上传文件及表单数据”主要讲解了如何利用AJAX实现文件和表单数据的异步提交,提高用户体验。下面我们将详细探讨这一主题。 首先,AJAX的核心是XMLHttpRequest对象,它提供了一种在后台与服务器...
【基于JavaBean的表单数据处理及结果同页显示技术】 在Web开发中,尤其是在B/S(Browser/Server,浏览器/服务器)架构下,表单数据处理和结果显示通常发生在两个不同的网页之间。用户在表单页面填写信息,提交后由...
iview是一个流行的Vue.js UI框架,提供了丰富的预设组件,如按钮、表格、表单、模态框等,适用于快速构建企业级后台界面。然而,每个项目都有其特殊需求,直接使用iview可能无法完全满足。这就是进行二次封装的意义...
\n\n - 页面转发与请求转发:如果表单提交方式为GET,表单数据会附加在URL后面;如果是POST,数据则包含在请求体中。JSP可以通过request.getRequestDispatcher()进行请求转发,保留表单数据。\n\n3. 处理多值参数:\...
通过发送异步请求到服务器,我们可以验证表单数据的有效性,如检查用户名是否已存在,而无需刷新整个页面。在JavaScript中,可以使用`XMLHttpRequest`对象或者更高级的`fetch` API来实现这个功能。 4. **JS验证规则...
2. 设计对应的表单bean,用于封装前端提交的多表单数据。 3. 使用Spring配置数据库连接和事务管理。 4. 配置Hibernate实体类和映射文件,处理数据关联。 5. 在Action中使用Iterator遍历并处理多表单数据,调用...
- **`action`属性**:指定了处理表单数据的脚本或页面地址(URL)。当用户提交表单时,浏览器会将表单数据发送到这个URL指定的位置。 - **`enctype`属性**:定义了表单数据的编码方式。默认情况下,使用`application...
【jQuery手机端个人信息填写表单页面】是一款专为移动端设计的、简洁且具有美观界面的用户个人信息填写界面。此代码实现了一个完整的表单,让用户能够方便地输入和更新他们的个人资料。下面将详细介绍该表单页面的...
学习这个教程,你将了解到如何创建ASP表单,如何设置ACTION属性指定处理表单的ASP页面,以及如何在ASP页面中使用Request对象来接收和处理表单数据。"jy055.swf"可能是一个包含具体示例的Flash动画,帮助视觉化表单...
以上就是对“java爬虫,调用接口抓取各个省份的地址表,调用自动化操作封装页面获取数据”这一项目涉及的主要知识点的详解。在实际开发中,还需要结合具体的业务需求和接口文档,进行具体的功能设计和代码实现。