公司用-->页面表单提交用的key是拼接的,保存时action的写法,struts1

Crazyflie 2.1固件刷写与地址配置全攻略:从开箱到连接Crazyswarm 本文详细介绍了Crazyflie 2.1微型无人机的固件刷写、地址配置及与Crazyswarm系统的集成方法。从开箱检查到多机协同飞行,涵盖了硬件准备、固件刷写、无线电地址修改等关键步骤,帮助用户快速实现集群飞行控制。特别针对Crazyswarm系统集成提供了实用配置示例和调试技巧。 阅读详情
/**
 * 生管PH设定维护页-保存
 * @author caohong
 * @date 2016年11月16日14:55:51
 */
public class SaveOrUpdateModifyPHSetupAction extends ERPProxyAction {
	
	private void bulidSaveTableBean(TableBean tableBean, String key, String value, String rowBeanKey, HashMap<String, String> hmKeyToDBColumnName, String parentKey,
			String parentValue) {
		RowBean rowBean = tableBean.get(rowBeanKey);
		if (rowBean == null) {
			rowBean = new RowBean(rowBeanKey);
			rowBean.addCellBean(new CellBean(hmKeyToDBColumnName.get(parentKey), parentValue));
			tableBean.addRowBean(rowBean);
		}
		rowBean.addCellBean(new CellBean(hmKeyToDBColumnName.get(key), value));
	}

	@Override
	protected ActionForward doExecute(FormBean parameterFB, ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		FormBean userInfoFormBean = (FormBean) request.getSession().getAttribute(TriangleDefinition.SESSION_ATTRIBUTE_KEY_USER_INFO);
		String userId = userInfoFormBean.getCellBeanValue(TriangleDefinition.COLUMN_NAME_CN_ID);

		DataBean dataBean = new DataBean();// 用于更新数据库的DataBean
		TableBean pmcPHSetupTB = new TableBean("TN_PMC_PH_SETUP");// 用于更新数据库
		FormBean updatePrarmeterFormBean = new FormBean("parameterFB");// 用于更新数据库
		dataBean.addFormBean(updatePrarmeterFormBean);
		dataBean.addTableBean(pmcPHSetupTB);
		updatePrarmeterFormBean.addCellBean(new CellBean("userId", userId));

		HashMap<String, String> hmKeyToDBColumnName = new HashMap<String, String>();// 用户替换View的Key到DBColumnName
		// PMCPHSetupTB
		hmKeyToDBColumnName.put("primaryId", "CN_ID");
		hmKeyToDBColumnName.put("articleId", "CR_ARTICLE_ID");
		hmKeyToDBColumnName.put("sectionId", "CR_SECTION_ID");
		hmKeyToDBColumnName.put("leadTimeDay", "CN_LEADTIME");
		hmKeyToDBColumnName.put("PH", "CN_PMC_PH_QTY");

		String articleId = parameterFB.getCellBeanValue("articleNumber");
		// 解析参数,构建用于更新数据库的TableBean
		for (int i = 0; i < parameterFB.size(); i++) {
			CellBean cellBean = parameterFB.get(i);
			String key = cellBean.getKey();
			String value = cellBean.getValue();
			// 处理PMCPHSetupTB
			// "sectionName_"+sectionId
			// PMCPHSetupTB的RowBeankey为sectionId
			if (key.startsWith("leadTimeDay_")) {
				String rowBeanKey = key.split("_")[1];
				this.bulidSaveTableBean(pmcPHSetupTB, "leadTimeDay", value, rowBeanKey, hmKeyToDBColumnName, "articleId", articleId);
			} else if (key.startsWith("PH_")) {
				String rowBeanKey = key.split("_")[1];
				this.bulidSaveTableBean(pmcPHSetupTB, "PH", value, rowBeanKey, hmKeyToDBColumnName, "articleId", articleId);
			} else if (key.startsWith("sectionId_")) {
				String rowBeanKey = key.split("_")[1];
				this.bulidSaveTableBean(pmcPHSetupTB, "sectionId", value, rowBeanKey, hmKeyToDBColumnName, "articleId", articleId);
			} else if (key.startsWith("primaryId_")) {
				String rowBeanKey = key.split("_")[1];
				this.bulidSaveTableBean(pmcPHSetupTB, "primaryId", value, rowBeanKey, hmKeyToDBColumnName, "articleId", articleId);
			} 	
			
		}
		String errorMsg = "";
		try {
			//保存数据
			FormBean resultFormBean = this.getERPServiceDelegation().getMasterProductionScheduleService().saveOrUpdateModifyPHSetup(dataBean);
			errorMsg = resultFormBean.getCellBeanValue("errorMsg");
		} catch (Exception e) {
			e.printStackTrace();
			errorMsg = e.getMessage();
		} finally {
			AlertMessagePOJO alertMessagePOJO = new AlertMessagePOJO(errorMsg, AlertMessagePOJO.TYPE_ERROR);
			if (StringUtils.isBlank(errorMsg)) {
				alertMessagePOJO = new AlertMessagePOJO(TriangleUIHelper.getMessageResources(request, TriangleUIHelper.getMulKeyPrefixAlert() + "saveSuccess"),
						AlertMessagePOJO.TYPE_INFO);
			}
			request.getSession().setAttribute(TriangleDefinition.SESSION_ATTRIBUTE_KEY_ALERT_MESSAGE, alertMessagePOJO);
		}

		return TriangleUIHelper.getForward("success", mapping, "articleId=" + articleId);
	}
}


第二种写法


package gts.erp.action.masterProductionSchedule;

import gts.erp.action.base.ERPProxyAction;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.oletech.triangle.component.CellBean;
import com.oletech.triangle.component.DataBean;
import com.oletech.triangle.component.FormBean;
import com.oletech.triangle.component.RowBean;
import com.oletech.triangle.component.TableBean;
import com.oletech.triangle.pojo.AlertMessagePOJO;
import com.oletech.triangle.utils.TriangleDefinition;
import com.oletech.triangle.utils.TriangleUIHelper;

/**
 * 保存行事历
 * @author WANGCHAO
 * @date    2016年7月21日
 */
public class SaveOrUpdateProductionCalendarAction extends ERPProxyAction {

	@Override
	protected ActionForward doExecute(FormBean parameterFB, ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {		
		DataBean dataBean = new DataBean();
		long time=System.currentTimeMillis();
		//获取用户信息
		FormBean userInfoFormBean = (FormBean) request.getSession().getAttribute(TriangleDefinition.SESSION_ATTRIBUTE_KEY_USER_INFO);
		String userId = userInfoFormBean.getCellBeanValue(TriangleDefinition.COLUMN_NAME_CN_ID);
		String pageName="oletech.triangle.multilanguage.toolbar.productionCalendar";
		String factory=parameterFB.getCellBeanValue("factory");
		String department=parameterFB.getCellBeanValue("department");
		FormBean formBean = new FormBean("paramFormBean");
		formBean.addCellBean(new CellBean("userId", userId));
		formBean.addCellBean(new CellBean("pageName", pageName));
		dataBean.addFormBean(formBean);
		
		TableBean tbProductionCalendar = new TableBean("TN_PRODUCTION_CALENDAR");
		for (int i = 0; i < parameterFB.size(); i++) {
			CellBean cellBean = parameterFB.get(i);
			String cellBeanKey = cellBean.getKey();
			String cellBeanValue = cellBean.getValue();
			if (cellBeanKey.contains("_") && cellBeanKey.split("_").length == 2) {
				String rowBeanKey = cellBeanKey.split("_")[1];
				RowBean rowBean = tbProductionCalendar.get(rowBeanKey);
				if (rowBean == null) {
					rowBean = new RowBean(rowBeanKey);
					rowBean.addCellBean(new CellBean("CR_COMPANY_ID", factory));
					rowBean.addCellBean(new CellBean("CR_DEPARTMENT_ID", department));
					rowBean.addCellBean(new CellBean("CR_CREATE_USER_ID", userId));
					rowBean.addCellBean(new CellBean("CN_CREATE_DATETIME", ""+time));
					rowBean.addCellBean(new CellBean("CR_MODIFY_USER_ID", userId));
					rowBean.addCellBean(new CellBean("CN_MODIFY_DATETIME", ""+time));
					rowBean.addCellBean(new CellBean("CR_IS_WORKDAY", TriangleDefinition.NO));
					tbProductionCalendar.addRowBean(rowBean);
				}
				if (cellBeanKey.startsWith("productionCalendarId_")) {
					if (StringUtils.isNotBlank(cellBeanValue)) {
						rowBean.setDbTableDataOperationId(TriangleDefinition.DATABASE_TABLE_DATA_OPERATION_UPDATE);
						rowBean.addCellBean(new CellBean(TriangleDefinition.COLUMN_NAME_CN_ID, cellBeanValue));
					} else {
						rowBean.setDbTableDataOperationId(TriangleDefinition.DATABASE_TABLE_DATA_OPERATION_INSERT);
					}
				} else if (cellBeanKey.startsWith("date_")) {
					rowBean.addCellBean(new CellBean("CN_DATE", cellBeanValue));
				} else if (cellBeanKey.startsWith("isWorkDay_")) {
					if("on".equals(cellBeanValue)){
						rowBean.setCellBeanValue("CR_IS_WORKDAY", TriangleDefinition.YES);
					}
				} else if (cellBeanKey.startsWith("remark_")) {
					rowBean.addCellBean(new CellBean("CN_REMARK", cellBeanValue));
				} else if (cellBeanKey.startsWith("manHour_")) {
					rowBean.addCellBean(new CellBean("CN_WORK_HOURS", cellBeanValue, TriangleDefinition.CLASS_ATTRIBUTE_DB_TYPE_LONG));
				} else if (cellBeanKey.startsWith("targetQty_")) {
					rowBean.addCellBean(new CellBean("CN_TARGET_QTY", cellBeanValue, TriangleDefinition.CLASS_ATTRIBUTE_DB_TYPE_LONG));
				}
			}
		}
		dataBean.addTableBean(tbProductionCalendar);
		FormBean returnInfoFormBean = this.getERPServiceDelegation().getMasterProductionScheduleService().saveOrUpdateProductionCalendar(dataBean);
		String errorMsg = returnInfoFormBean.getCellBeanValue("errorMsg");
		AlertMessagePOJO alertMessagePOJO = new AlertMessagePOJO(TriangleUIHelper.getMessageResources(request, errorMsg), AlertMessagePOJO.TYPE_ERROR);
		if (StringUtils.isBlank(errorMsg)) {
			alertMessagePOJO = new AlertMessagePOJO(TriangleUIHelper.getMessageResources(request, "oletech.triangle.multilanguage.alert.saveSuccess"), AlertMessagePOJO.TYPE_INFO);
		}
		request.getSession().setAttribute(TriangleDefinition.SESSION_ATTRIBUTE_KEY_ALERT_MESSAGE, alertMessagePOJO);
		return TriangleUIHelper.getForward("success", mapping, "");
	}
}




        
099、LLC谐振变换器的大信号建模 摘要:LLC谐振变换器的小信号模型在大信号工况(如启动、负载突变)下会失效,导致保护失灵、过冲等问题。通过状态空间平均法和分段线性化建立大信号模型,需关注谐振腔能量转移、模态切换条件及离散化实现。实际应用中,该模型可优化启动策略、精确设定保护阈值并验证环路补偿,但需注意变压器饱和等非线性因素。经验表明,大信号建模能显著提升设计可靠性,但需结合实验验证(误差<15%)和工具适配(如MATLAB离线仿真与C语言嵌入式调试)。三颗炸裂的MOSFET警示:深入掌握大信号建模是避免关键故障的必要手段。 阅读详情

相关推荐

Zemax序列模式下激光二极管(LD)光源建模与像散校正实战

本文详细讲解了在Zemax序列模式下精确建立激光二极管(LD)光源模型并校正其像散的核心方法。通过将椭圆光束的发散角转换为渐晕系数,并巧妙利用理想柱面镜模拟像散,实现了对LD光源特性的高精度模拟。该方法特别适用于激光耦合、激光雷达等需要对像散光束进行精密控制的光学系统设计。

weixin_28455801的博客 440

activiti入门十一(表单的介绍以及formService使用)

本来这章是要讲解FormService的使用,在准备资料的过程中,发现还是需要先介绍下activiti的不同表单类型的应用。同时附带把FormService中常用的操作做个介绍 在Activiti中总共有三种表单,动态表单,普通表单和外置表单。

jonathan的专栏 3万+

树莓派34/100 - Pico读取MPU6050加速度和陀螺仪传感器数据

树莓派Pico连接MPU-6050模块(三轴陀螺仪+三轴加速度),读取运动姿态数据。

申龙斌的程序人生 5092

史上最全----Flowable数据库表命名以及Flowable表结构

flowable数据库命名规则以及几个核心表

rayding的博客 2689

OpenClaw 完整命令文档(2026.3.13 最新版)

本文档为OpenClaw 2026.3.13通用版使用指南,包含核心命令大全。主要内容包括:1)基础安装/升级/卸载命令;2)ClawHub扩展安装命令(支持飞书/钉钉/企微等平台连接);3)Skills技能安装命令(实现聊天/搜索/记忆等功能);4)飞书机器人授权与配对命令;5)启动运行与配置检查命令;6)工作区与记忆管理命令;7)插件安全设置命令;8)调试日志命令;9)飞书机器人一键部署简化流程。文档特别强调飞书机器人部署需feishu扩展+对应技能+用户授权的完整配置,所有命令均需在终端执行,安装后需

MKliudan的专栏 1294

机器学习项目(四)疫情期间网民情绪识别 (一)

疫情期间网民情绪识别 赛题背景 2019新型冠状病毒(2019-nCoV)感染的肺炎疫情发生对人们生活生产的方方面面产生了重要影响,并引发国内舆论的广泛关注,众多网民参与疫情相关话题的讨论。为了帮助政府掌握真实社会舆论情况,科学高效地做好防控宣传和舆情引导工作,本赛题针对疫情相关话题开展网民情绪识别的任务。 数据介绍 训练集 10万条 无标记样本90万条 测试集1万条 数据集依据与“新冠肺炎”相关...

qq_33357094的博客 8972

HTML表单提交和封装键值对

html表单提交submit,json方式提交,提交formdata,表单拼接 其实主要是对表单元素进行键值对拼接 封装键值对的方式: 1.JS原生提交方法 2.jQuery方式提交 jQuery提供的API serialize()

Museions的开心博客 2137

备战2025数学建模国赛(算法65):Fisher判别分析

在数学建模竞赛中,我们常常会遇到需要对研究对象进行分类或判断的问题。例如,根据西瓜的各类指标判断其好坏,根据经济数据判断一个国家的发展程度,或根据病人的医学影像特征判断其是否患病。这类“分类判别”问题,是建模竞赛中最常见的题型之一。Fisher判别分析(或称线性判别分析,LDA)作为一种经典的、有监督的降维与分类方法,因其模型简洁、可解释性强、计算高效而备受青睐。

YOLO 424

Activiti6.0流程编辑器汉化教程(stencilset_bpmn.json文件汉化)

添加汉化文件到如下: 源代码: 汉化文件 stencilset_bpmn.json { "title" : "BPMN 2.0标准工具", "namespace" : "http://b3mn.org/stencilset/bpmn2.0#", "description" : "BPMN process editor", "propertyPa

专注基础架构领域 8928

乐企增值税及附加税费预缴申报表填报能力说明文档V1.004

申报表填报,是指企业在自有业务系统中将算税结果数据按预填规则要求加工汇总后,进行申报表填报的过程。申报表填报前对纳税申报所需的前提条件进行校验。校验通过后,应用前序算税结果数据及预填规则进行纳税申报表预填,生成申报表数据。申报表数据通过申报业务规则校验后,经纳税人确认即完成申报表填报业务。

记录点滴 359

LVGL misc timer 定时器(lv_timer.c)

定时器机制是LVGL中非常重要的一项功能,它承载了LVGL的延时任务执行,周期任务执行,时序任务执行等,可以说理解定时器的设计就一定程度上理解发LVGL的任务调度机制。

Bigan(安)的博客 4733

java action提交表单数据_在Action中获取表单提交数据

-----------------siwuxie095在 Action 中获取表单提交数据1、之前的 Web 阶段是提交表单到Servlet,在其中使用Request 对象的方法获取数据2、Struts2 是提交表单到Action,但 Action 没有Request对象,不能直接使用 Request 对象获取数据「可以间接使用 Request 对象获取数据」3、Action 获取表单提交数据主要...

weixin_35688354的博客 858

手把手带你实现DAF-Net:零代码基础入门红外与可见光图像融合(从理论到实战)

本文介绍了红外与可见光图像融合技术及DAF-Net网络的应用。红外图像能捕捉热源但缺乏细节,可见光图像纹理丰富但在低光环境下表现不佳。DAF-Net采用双分支特征提取和动态注意力融合架构,能智能分配特征权重实现优势互补。文章详细讲解了环境配置、数据集准备(如TNO数据集)和预处理方法,并提供了DAF-Net的核心代码实现,包括特征提取、注意力融合和图像重建模块。通过该技术可在安防、自动驾驶等领域获得更优质的融合图像,提升视觉感知能力。

m0_71589036的博客 234

Struts2:Action获取表单提交数据

Action获取表单提交数据 之前web阶段,提交表单到servlet里面,在servlet里面使用request对象里面的方法获取,getParameter,getParameterMap。 提交表单到action,但是action没有request对象,不能直接使用request对象。 action获取表单提交数据主要三种方式: 使用ActionContext类 使用ServletAct...

离开屏幕的光,哪盏灯照亮你的孤独? 316

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Action获取表单提交数据

1 之前web阶段,提交表单到servlet里面,在servlet里面使用request对象里面的方法获取,getParameter,getParameterMap 2 提交表单到action,但是action没有request对象,不能直接使用request对象 3 action获取表单提交数据主要三种方式 (1)使用ActionContext类 (2)使用ServletActionContext类 (3)使用接口注入方式 使用ActionContext类获取 Form1DemoAction类 pu

qq_41834086的博客 721

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Struts2表单验证提交报错

填个小坑花了这么长时间真的好吗将要提交的表单edit.jsp:&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; &lt;%-- Created by IntelliJ IDEA. User: joey Date: 18-1-18 Time: 下午7:27 To change this template use File | Se...

么凹大人的博客 590

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

action与表单的对接

struts2中action的使用:1:定义action类。2:再struts.xml中配置action。 action不要求继承父类。但是一般会继承Action接口。目的是让开发action的类更为规范。 对一个表单对应多个action的实现可以:用onclick=“”参数动态更改表单对应的action。 如: 通过document.forms[0]得到当前第一个表格的表单。调出表单的ac

佐灵的程序猿之路 1250

struts1.2的action参数配置

name="baseForm"  //该Action绑定的ActionForm(存放请求参数)         validate="false"  //是否执行ActionForm中的validate方法来校对请求参数,缺省为true         input="/error.jsp"  //当Bean发生错误时返回的路径         scope="request"  //指定Acti

u012047933的专栏 4541

在Action中获取表单提交数据

-----------------siwuxie095                         在 Action 中获取表单提交数据       1、之前的 Web 阶段是提交表单到 Servlet,在其中使用 Request 对象 的方法获取数据          2、Struts2 是提交表单到 Action,但 Action 没有 Request

siwuxie095's blog 797

重温经典struts1之DispatchAction完成一个Action中编写多个方法接收页面的增删改查请求

DispatchAction完成一个Action中编写多个方法接收页面的增删改查请求

dy051107的博客 1173

Struts2 Unexpected Exception提交表单控制台报Exception

这是今天发现的另一个小异常, 弄了个表单,提交后页面跳转成功,但是控制台报了错误信息: ERROR ParametersInterceptor Developer Notification (set struts.devMode to false to disable this message): Unexpected Exception caught setting 'submit'

tom9238的博客 651

Struts2 兴趣爱好表单的提交与交互

引言           能正确配置Struts 2开发环境,了解和熟悉Struts 2的开发流程、了解和熟悉Struts2标签的使用方法。 开发环境 点击查看 开发流程 点击查看 Struts2标签 点击查看 具体开发 目录结构 编写web.xml文件 <?xml version="1.0...

qq_41827511的博客 240

struts1中几种常用的Action

<br />除了基本的Action 之外, Struts 还提供了几个其他类型的Action ,这些Action 大大 丰富了Struts 的功能。下面介绍如下儿个常用的Action 。<br />• DispatchAction: 能同时完成多个Action 功能的Action 。<br />• ForwardActon: 该类用来整合Struts 和其他业务逻辑组件,通常只对请求作有效 性检查。<br />• IncludeAction: 用于引入其他的资源和页面。<br />• LookupDispa

Avenleft的专栏 840

Struts中的Action方法

除了基本的Action 之外, Struts 还提供了几个其他类型的Action ,这些Action 大大 丰富了Struts的功能。下面介绍如下儿个常用的Action 。  DispatchAction: 能同时完成多个Action 功能的Action 。  ForwardActon: 该类用来整合Struts 和其他业务逻辑组件,通常只对请求作有效 性检查。  IncludeAction

m540920181的专栏 614

struts2学习(二)—action获取表单提交数据的三种方式

action获取表单提交数据的三种方式:(1)使用actionContext类 (2)使用ServletActionContext类 (3)使用接口注入的方式1.使用actionContext类获取表单数据在浏览器中输入http://127.0.0.1:8080/struts2All/form1.jsp ,可得网页,在username,password,address中输入相应内容,点“提交”

alvin的博客 9691

Struts2 Action后台获取表单数据三种方法

在学习使用struts的过程中自己也是实际用idea操作Action后台获取表单数据三种方式,这里记录一下。 一、使用ActionContext类获取(系统推荐): jsp页面代码: <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <...

兔的骄傲 1394
上一篇: 公司内部多表查询 sql在实现类的应用
下一篇: startsWith(),endsWith()的作用,用法,判断字符串a 是不是以字符串b开头或结尾
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值