struts,DynaActionForm,数组,文件上传

javaweb表单数据和多文件上传 代码主要实现了javaweb实现表单数据和多文件的同时间上传。 立即下载


1. JSP页,文件上传,表单中有同名的属性

<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> 
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<html> 
 <head>
  <title>JSP for DynaActionForm form</title>
 </head>
 <body>
  <html:form action="/user.do" method="POST" enctype="multipart/form-data">
   userId : <html:text property="userId"/><br/>
   salary : <html:text property="salary"/><br/>
  <html:multibox property="hob" value="Computer" />Computer
  <html:multibox property="hob" value="Ball" />Ball
  <html:multibox property="hob" value="Book" />Book<br>
  <html:file property="file"></html:file>
   <html:submit/><html:cancel/>
  </html:form>
 </body>
</html>

2. struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  <form-beans >
    <form-bean type="org.apache.struts.action.DynaActionForm">
      <form-property type="java.lang.String" />
      <form-property type="java.lang.Double" />
      <form-property type="java.lang.String[]" />
      <form-property type="org.apache.struts.upload.FormFile"/>
    </form-bean>
  </form-beans>
 <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="userForm"
      input="/user.jsp"
      
      path="/user"
      scope="request"
      type="com.sun.form.struts.action.UserAction">
      <forward path="/ok.jsp" />
    </action>

  </action-mappings>

  <message-resources parameter="com.sun.form.struts.ApplicationResources" />
</struts-config>

3. UserAction.java

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.sun.form.struts.action;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.upload.FormFile;
import org.apache.struts.util.ModuleException;

/** 
 * MyEclipse Struts
 * 
 * 
 * XDoclet definition:
 * @struts.action path="/user" input="/user.jsp" scope="request" validate="true"
 * @struts.action-forward path="/ok.jsp"
 */
public class UserAction extends Action {

 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  DynaActionForm userForm = (DynaActionForm) form;// TODO Auto-generated method stub
  String userId=userForm.getString("userId");
  
  double salary=Double.parseDouble(userForm.get("salary").toString());
  
  String []phone=userForm.getStrings("hob");
  String dir=servlet.getServletContext().getRealPath("/photo");
  System.out.println(phone[0]);
  System.out.println(phone[1]);
  
  FormFile file=(FormFile)userForm.get("file");
  InputStream streamIn;
  try {
   streamIn = file.getInputStream();
   OutputStream streamOut=new FileOutputStream(dir+"/"+file.getFileName());
   int bytesRead=0;
   byte[] buffer=new byte[8192];
   while((bytesRead=streamIn.read(buffer,0,8192))!=-1)
   {
    streamOut.write(buffer,0,bytesRead);
   }
   streamOut.close();
   streamIn.close();
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   new ModuleException("error.exception");
  } catch (IOException e) {
   // TODO Auto-generated catch block
   new ModuleException("error.exception");
  }
  file.destroy();
  //System.out.println(userId);
  return null;
 }
}

JavaBean实现多文件上传的两种方法 摘要:本文介绍了JavaBean实现多个文件上传的两种方法,分别是使用http协议和ftp协议实现。首先讲述了http协议传送多个文件的基本格式和实现上传的详细过程,之后简单介绍了使用ftpclient 类实现了ftp方式的上传,最后对这两种方法进行了比较。  关键字:JavaBean 、http 、ftp 、ftpclient  JavaBean是一种基于Java的软件组件。JSP对于在Web 应用中集成JavaBean组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为JSP应用带来了更多的可伸缩性。  文件的上传功能在基于B/S的 立即下载

相关推荐

MATLAB PDE工具箱电磁场仿真平行电容板及电偶极子详解

首先打开matlab,在命令行输入pdetool打开PDE工具箱 工具箱的功能我就不赘述了,大概就是以有限元的数值计算方法,计算二阶偏微分方程,因此可以解决电磁场、热力学等问题。 首先点击左上角按钮,画三个矩形 画完一个后可以双击矩形编辑,参数如下: 其中R1表示上极板,R2表示下极板,R3表示整个空间区域。 在上方Set formula为R3-R2-R1,表示求解区域是整个空间区域减去两个极板。下拉框选择Electrostatics表示求解的是静电场问题。 接下来点击上方菜单栏中的这个按钮,表

weixin_42845306的博客 1万+

多文件上传

struts,DynaActionForm,数组,文件上传<br />源代码2007-11-16 14:50:23阅读44评论0字号:大中小<br /> <br />1. JSP页,文件上传,表单中有同名的属性<br /><%@ page language="java" pageEncoding="GBK"%><br /><%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> <br /><%@ taglib u

shiaisun的专栏 437

windows局域网文件夹共享

windows局域网共享文件夹,亲测,包括可能出现的一些问题解决

yml15180824993的博客 4万+

struts框架——ActionForm+DynaActionForm

ActionForm Actionform的作用: 表单字段收集器 如果ActionForm中的属性和表单中的参数不一致,则只收集和表单名字相同的属性 作为类型转换器 作为传输对象 语法要求: 必须扩展自org. apache . struts . action . ActionForm 如果要获取表单的值,必须定义相应的私有属性 如果要求在ActionForm传递到Action之前进行校验,必须...

何以渡的博客 665

如何在RT-DETR-R18中修改ultralytics的yaml文件(附完整代码)

本文详细指导如何在RT-DETR模型中,通过修改Ultralytics框架的yaml配置文件,将Backbone从ResNet50轻量化替换为ResNet18。核心步骤包括自定义ResNet18基础模块、调整HybridEncoder的expansion参数至0.5,并协同修改检测头Decoder层数,最终提供完整的配置文件代码,助力开发者在资源受限环境下部署轻量级实时目标检测模型。

weixin_29091445的博客 288

团结引擎+OpenHarmony 记录 (持续更新中)

获取不到的原因是因为二者不在同一个线程中,所以数据没有同步。而 globalThis.context 数据进行了同步。(TuanjieMainWorkerHandler.ts中可以看到)在进行绘制 UI 的时候 ,如果组件有 Native API 就可能不会显示出来,例如 web 控件就不能展示出来,刚加上权限的时候 会报错 因为缺少 reason ,添加上就不会报错了。只有纯 UI 控件是可以展示出来的,注释掉 web控件后就可以。

m_cainiaokuaifei的博客 1492

struts中的DynaActionForm类和ActionForm类

DynaActionForm类 随着页面的增多,ActionForm的数量也会急剧膨胀。对ActionForm类的维护会成为一件耗时、费力的工作。而且每个ActionForm都只是简单、重复地收集、验证属性,然后再把它们传递给业务逻辑Bean。引入DynaActionForm类就是要试图解决这个问题。DynaActionForm使你不必创建一个个具体的ActionForm类,为每个bean的属性编

danning之道 3082

MEME-CHIP实战:5步搞定ChIP-seq数据中的motif发现与可视化

本文提供了使用MEME-CHIP工具进行ChIP-seq数据motif发现与可视化的完整实战指南。通过5个清晰步骤,从数据准备、环境搭建、命令行执行到结果解读与高级可视化,详细讲解了如何利用MEME-CHIP工作流高效完成从原始peak序列到发表级motif图的分析,并分享了关键的参数调优与避坑经验。

alice7model的博客 508

struts的基本知识点—DynaActionForm

DynaActionForm可以动态的接收jsp页面传过来的参数,也可以很好的解决ActionForm膨胀的问题。 如何来实现DynaActionForm 1.在struts-config.xml中配置DynaActionForm 注意:还要在标签添加一个属性name="userForm"  要与中对应 2.然后可以再UserAction中动态的使

nc_wanjing的专栏 678

深入浅出之CSPBlock模块(YOLO)

YOLO CSPX模块是YOLO系列算法中的一个重要组成部分,它通过跨阶段部分连接的方式减少了计算量,同时保证了模型的准确率。在YOLOv4及后续版本中,CSPX模块被广泛应用于主干网络和Neck结构中,为模型提供了强大的特征提取和融合能力。

浩瀚之水的专栏 6754

全国区块链职业技能大赛国赛考题前端功能开发

全国区块链职业技能大赛国赛考题区块链应用前端功能开发

本郡主是喵 1334

DynaActionForm是什么及好处使用

 随着页面的增 多,ActionForm的数量也会急剧膨胀。对ActionForm类的维护会成为一件耗时、费力的工作。而且每个ActionForm都只是简单、重 复地收集、验证属性,然后再把它们传递给业务逻辑Bean。引入DynaActionForm类就是要试图解决这个问题。DynaActionForm使 你不必创建一个个具体的ActionForm类,为每个bean的属性编写get/set方法

Roger★L☆M☆J★ 3952

Android系统开发面试指南:系统Launcher岗位解析

本文针对上海礼聪Android系统开发岗位(侧重系统Launcher、充电/电池/USB底层开发)提供面试指南。内容涵盖应用开发(启动流程优化)、系统底层(充电状态机、USBOTG)、编程能力(线程安全LRU实现)、问题排查(ANR分析)及沟通协作等核心考点。通过5类典型问题及技术深度解析,帮助候选人系统准备,重点考察Framework源码理解、系统调试能力和工程思维。建议结合PowerManagerService等模块源码和systrace工具进行实践准备,同时注重技术表达与协作能力的展现。

郑伟强dev的专栏 935

struts DynaActionForm讲解

<br />1.动态ActionForm<br />   动态ActionForm是为了避免标准ActionForm膨胀而设计的,使用动态ActionForm可以获得标准ActionForm的所有功能<br /> <br />前台:<br /> <br /><form action="" method="post"><br />   姓名:<input type="text" name="userName" /><br />   年龄:<input type="text" name="age" /><br

java_min的专栏 684

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

自学SSH框架之---struts(五):动态的ActionForm(DynaActionForm)

<br />在一个大的项目里面,actionForm会很多,那么有没有什么方法避免actionForm的膨胀呢?<br />有,那就是DynaActionForm,,它不用写actionForm类了(可以称为标准或者静态actionForm),只需要通过在struts-config.xml文件配置一下即可,DynaActionForm可以获得标准actionForm的所有功能。一个好例子比说千言万语好用,那就例子伺候:<br /><?xml version="1.0" encoding="ISO-8859-

fengg5241的专栏 1602

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

程序人生(程序篇- DynaActionForm类&支持Map的ActionForm(Map-backed ActionForm))

DynaActionForm类 随着页面的增多,ActionForm的数量也会急剧膨胀。对ActionForm类的维护会成为一件耗时、费力的工作。而且每个ActionForm都只是简单、重复地收集、验证属性,然后再把它们传递给业务逻辑Bean。引入DynaActionForm类就是要试图解决这个问题。DynaActionForm使你不必创建一个个具体的ActionForm类,为每个bean的属性编

鹤巢 1023

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Struts 1.x | DynaActionForm (动态ActionForm)

struts动态ActionForm    1)什么是动态ActionForm                       动态ActionForm是struts从1.1版本开始引入一项新的技术,即在创建ActionForm时                      可以不用通过编程的方式而只要通过struts-config.xml文件中进行配置,以后在struts运行时,会自动根   ...

ray 237

DynaActionForm

1)什么是动态ActionForm 动态ActionForm是struts从1.1版本开始引入一项新的技术,即在创建ActionForm时可以不用通过编程的方式而只要通过struts-config.xml文件中进行配置,以后在struts运行时,会自动根据struts-config.xml中配置的DynaActionform来生成一个Action实例 2)为...

u010866201的博客 203

DynaActionForm类 支持Map的ActionForm(Map-backed ActionForm)

随着页面的增多,ActionForm的数量也会急剧膨胀。对ActionForm类的维护会成为一件耗时、费力的工作。而且每个ActionForm都只是简单、重复地收集、验证属性,然后再把它们传递给业务逻辑Bean。引入DynaActionForm类就是要试图解决这个问题。DynaActionForm使你不必创建一个个具体的ActionForm类,为每个bean的属性编写get/set方法。你只需在S

windfree的专栏 1573

DynaActionForm的使用

<br />1)什么是动态ActionForm<br /><br /><br /> 动态ActionForm是struts从1.1版本开始引入一项新的技术,即在创建ActionForm时<br /> 可以不用通过编程的方式而只要通过struts-config.xml文件中进行配置,以后在struts运行时,会自动根<br /><br /> 据struts-config.xml中配置的DynaActionform来生成一个Action实例<br /><br />   2)为什么要使用DynaAction

田军的专栏 764

struts 动态多文件上传

<br />  Struts动态多文件上传首先保证页面中的<input type="file">标签的名称name不同,struts标签property也一样。包含这些<input>的<form>其属性必须为 enctype="multipart/form-data"  method="post"。在formbean中,不需要定义类型为org.apache.struts.upload.FormFile的属性,也不需要List对象,建议使用DynaActionForm。action中取出上传的文件代码:Dy

shiaisun的专栏 811

Struts 动态FORM实现过程

1修改struts-config.xml中<form-beans><form-beans><form-bean name="regeditForm" type="org.apache.struts.action.DynaActionForm"><form-property name="username" type="java.lang...

u014712365的博客 80

org.apache.struts.action.DynaActionForm 动态表单

引用:http://hzy2688.iteye.com/blog/679841 使用了大量的动态FromBean,但现在项目升级的时候,感觉它给我带了蛮多麻烦! 我们先来分析一下传统的form与动态的区别,然后就可看出他们各自的应用特点和用途 传统的form :如果要改变表单的条目的数量,需要在jsp页面增加或减少条目,并且还要再次更改ActionForm的Java原文件,再次编译...

bule-tom 460
上一篇: struts终极解决方案
下一篇: Birt设置导出格式和去掉多余按钮的方法
mingxingxinxing
博客等级 码龄16年 3粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值