DynaActionForm

struts1配置文件中DynaActionForm的使用 用jsp、action、struts-config.xml配置文件,举例说明了DynaActionForm 在struts1 中的作用。 立即下载

  1)什么是动态ActionForm


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

                      据struts-config.xml中配置的DynaActionform来生成一个Action实例


  2)为什么要使用DynaActionform


                       很显然随着应用程序的变大,数百个ActionForm 这样不仅编程起来麻烦,以后维护起来也麻烦,比如:

                       某个属性变化了,则需要修改源代码,然后重新编译,但是如果使用DynaActionform则只需要修改

                       struts-config.xml配置文件就行了。这样提高了应用程序的开发效率与应用程序的可维护性


  3)如何使用DynaActionform

 


       1)在struts-config.xml中创建一个DynaActionform


           <form-beans >  
          <form-bean name="dynaActionForm" type="org.apache.struts.action.DynaActionForm">
            <form-property name="num1" type="java.lang.String"/>
            <form-property name="num2" type="java.lang.String"/>
          </form-bean>
         </form-beans>  


      2)从上面的配置可以看出,动态ActionForm的配置必须增加forms-property元素

 


                     且每个forms-property包含两个属性
                       A:name 属性的名字,该属性必须与jsp页面的表单元素的名字一致
                       B:type 属性的类型。强烈建议把类型都设置为String,以后在Action中再去转换
                       C:类型不能直接写String一定要写上java.lang.String
                       D:动态ActionForm的type必须要写org.apache.struts.action.DynaActionForm
                         它是struts中内置的一个用于创建动态ActionForm的一个父类 


       3)如何使用DynaActionForm


                     在与之对应的Action中的Excute中写上代码,然后通过其get方法就行了
                       DynaActionForm frm=(DynaActionForm)form; //取出动态ActionForm
                       frm.get("在struts-config.xml为动态Action配置的属性的名字");  
                       比如:
                        int num1=Integer.parseInt(frm.get("num1").toString());
                        String userName=frm.get("userName").toString();
                        double price=Double.parseDouble(frm.get("price").toString());


       4)通过"initial"给DynaActionForm增加默认值:

 


                 <form-bean name="dynaActionForm" type="org.apache.struts.action.DynaActionForm">
             <form-property initial="1" name="num1" type="java.lang.String"/>
             <form-property initial="2" name="num2" type="java.lang.String"/>
         </form-bean>


     5)如何在DynaActionForm中配合checkBox使用数组属性:


          A:配置:
               <form-bean name="dynaActionForm" type="org.apache.struts.action.DynaActionForm">
                   <form-property name="love"  type="java.lang.String[]"/>在String后面加上"[]"
               </form-bean>
           B:使用:
                        DynaActionForm frm=(DynaActionForm)form; 
                        String love[]=frm.getStrings("love");//通过getStrings方法会返回一个数组


      6)什么时候用动态ActionForm。

 

          实事上配置动态ActionForm的工作量与通过MyEclipse去生成一个ActionForm的

          工作量相当。所以如果一个表单中只有一到两个元素需要传值则考虑DynaActionForm,但是如果超过两个以上

          时,建议还是使用ActionForm 

Struts framework中DynaActionForm(动态表单)介绍及应用 DynaActionForm(动态表单)介绍及应用,Struts framework中,ActionForm对象的封装及应用,通过Struts framework中的DynaActionForm类及其子类可以实现动态的ActionForm ,动态的ActionForm允许你通过Struts的配置文件完成ActionForm的全部配置;再也没有必要在应用程序中创建具体的ActionForm类。 立即下载

相关推荐

Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法

Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 目录 Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 一、简单介绍 二、实现原理 三、注意事项 四、效果预览 五、实现步骤 六、关键代码 一、简单介绍 Unity中的一些基础知识点。 本节介绍,Asset Bundle 在 Unity中的使用,入门第一篇,如何AssetBundle标记,如何打包成AssetBundle的操作方法,有不对的地方欢迎指正。...

仙魁XAN 1万+

Struts 1.x | DynaActionForm (动态ActionForm)

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

ray 237

【Unity】YooAsset与HybridCLR:高效资源管理与代码热更的黄金组合

本文深入探讨了Unity开发中YooAsset与HybridCLR的组合应用,为需要长期运营的项目提供了完整的资源与代码热更新解决方案。YooAsset作为高效的资源管理框架,简化了AssetBundle的打包、加载与热更流程;而HybridCLR则攻克了IL2CPP模式下C#代码无法热更的难题。两者结合,实现了从资源到逻辑的平滑在线更新,极大提升了开发迭代与线上维护的效率。

weixin_29006701的博客 282

自学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

HWSD中国土壤数据库

T_PH_H2O: Real (酸碱度) T_CEC_CLAY: Real (粘性层土壤的阳离子交换能力);T_CEC_SOIL: Real (土壤的阳离子交换能力) T_BS: Real (基本饱和度);T_CACO3: Real (碳酸盐或石灰含量) T_CASO4: Real (硫酸盐含量);ADD_PROP: Real (土壤单元中与农业用途有关的特定土壤类型);T_USDA_TEX: Real (USDA土壤质地分类);T_REF_BULK: Real (土壤容重);

地球资源数据云的官方博客 4654

MATLAB 设置legend加标题

x1 = linspace(0,5); y1 = sin(x1/2); plot(x1,y1) hold on x2 = [0 1 2 3 4 5]; y2 = [0.2 0.3 0.6 1 0.7 0.6]; scatter(x2,y2,'filled') hold off legend({'sin(x/2)','2016'},'Location','northwest','Orientation','horizontal')%水平 legend添加标题 lgd = legend; lgd.Fon

早起CaiCai的学习空间 4714

DynaActionform--- 转载

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

SUDALYL的专栏 254

Wi-Fi物理帧间隔概念简介

物理帧间隔概念简介。

1042484520@qq.com(邮箱) 1779

DynaActionForm是什么及好处使用

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

Roger★L☆M☆J★ 3953

基于Python的农业市场价格抓取与供需分析:现代爬虫技术与实战应用

在正式开始爬虫开发之前,我们首先了解爬虫的基本概念和工作原理。爬虫(Web Scraping)是通过编程的方式,自动从互联网上获取信息的技术。它可以帮助我们提取HTML页面中的特定数据,通常用于收集并处理大量信息。发送HTTP请求:爬虫需要向目标网站发送请求,获取网站的HTML页面内容。解析HTML页面:通过HTML解析器对获取的页面内容进行解析,提取其中需要的数据。数据清洗与存储:将提取的数据进行清洗,去除多余的字符或无关内容,然后存储到合适的格式(如CSV文件、数据库等)中。数据分析与可视化。

2201_76125261的博客 1119

12-RK平台U-Boot启动流程

先看概述,把这一章要回答的问题摆出来,带着问题听。RK 特有的 BootROM -> MiniLoader -> SPL -> U-Boot -> Kernel。这是因为 RK 平台使用闭源的 DDR 初始化固件,需要通过 MiniLoader 来加载和运行。为什么多一层?这是 RK 平台的特殊性决定的。RK 平台使用闭源的 DDR 初始化固件,这段代码 Rockchip 不开源,只能以二进制形式提供,它需要一个载体来加载和运行,这个载体就是 MiniLoader。

内核笔记 1150

[转载]DynaActionForm (动态ActionForm)

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

aeolus83的专栏 189

CANoe如何实现TLS协议

TLS,Transport Layer Security,传输层安全协议。是在传输层和应用层之间,为了保证应用层数据能够安全可靠地通过传输层传输且不会泄露的安全防护。

jasonj333 1167

如何使用DynaActionForm

DynaActionForm动态form可以不局限于某一个html表单页面,当表单页面内容增加或减少中,只需修改struts-config.xml文件即可生成新的form,免去了重新编译form的烦恼 JSP页面...@ page contentType="text/html; charset=GBK" %>...@ taglib uri="/WEB-INF/struts-ht

我的世界我的梦 1060

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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

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

DynaActionForm的使用

      我们都知道了DispatchAction的使用方法,也知道了他的好处,现在我们看看DynaActionForm的用法与好处,DynaActionFrom的用法也比较简单,而且他的好处呢也是显而易见的,从他的名字上面来看,有个ActionForm原来的时候我们写的ActionForm需要写上他的setter与getter方法,这里我们用了DynaActionForm以后就不必再用到写这些

kobe_lzq的专栏 5310

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Struts DynaActionForm示例

Struts DynaActionForm类是一个有趣的功能,它使您可以动态和声明性地创建表单bean。 它使您可以在Struts配置文件中创建“虚拟”表单Bean,而不是创建真正的Java表单Bean类。 它可以避免您创建许多简单但乏味的Form Bean类。 例如,一个DynaActionForm包含一个“用户名”属性。 <form-bean name="dynaUserFor...

一名可爱的技术搬运工 165

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Struts中使用 DynaActionForm

使用表单是网页里面经常遇到的事情.利用struts的标签可以很好的完成这一功能.在struts中表单分为两种.一种是ActionForm..另外一种是DynaActionForm.所谓动态是在使用表单时不需要创建对就的bean文件.ActionForm很简单,在此只说说DynaA

dcsoft_nick的专栏 505

struts框架——ActionForm+DynaActionForm

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

何以渡的博客 666

使用DynaActionForm自动填充Form

1.引入动态Form在前面我们已经知道,ActionForm是用来获取表单提交过来的信息。而为了具体的处理,我们必须写一个ActionForm的子类作为表单数据的存储bean。其实,我们也可以把数据填充到struts自带的动态From。这样就可以不必写ActionForm,但是却要为这个DynaActionFrom写好配置文件。2.实例演示:新建项目dynaFormreg.jsp页面内容如下:           username:           password:           age:   

jamespengo的专栏 1104

使用DynaActionForm類別

入門 09 - 使用DynaActionForm類別 function toggle(id) { var oldAttachmentVersionsBlock = document.getElementById(attachment + id); with (oldAttachmentVersionsBlock.sty

lannos的专栏 1039

DynaValidatorForm类和DynaActionForm类

 DynaActionForm类DynaActionForm的目的就是减少ActionForm的数目,利用它你不必创建一个个具体的ActionForm类,而是在配置文件中配置出所需的虚拟ActionForm。例如,在下表中通过指定的type为"org.apache.struts.action.DynaActionForm"来创建一个动态的ActionForm--loginForm。

sukyle的专栏 1421

struts DynaActionForm 使用心得

本人很懒,相当懒,一个方法能写一遍绝不写两遍。而普通的ActionForm必须要在自己写好多get 、set方法,很烦,幸好有DynaActionForm解脱了我。但是今天想使用DynaActionForm传对象的时候碰到问题了,准确点说就是我希望DynaActionForm实现如下的功能:public class UserActionForm extends Actions{private Us

凤影的专栏 3589

关于DynaActionForm

1.import org.apache.struts.action.DynaActionForm;2. struts-**.xml 中  3.Action 中  DynaActionForm df = (DynaActionForm) form;  SomeObject    some  = (SomeObject) df.get("test");

ZhangGuozhong's Blog 662

struts中DynaActionForm的使用

struts-config.xml的内容: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http:...

SYL269794967的博客 167

动态ActionFrom --DynaActionForm

配置文件Xml代码 form-bean name="dynaForm" type="org.apache.struts.action.DynaActionForm">       form-property name="name" type="java.lang.String

Kevin的程序人生 529
上一篇: 字符编码-使用c#研究
下一篇: hibernate------hql总结
AngleKill
博客等级 码龄18年 20粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值