精华内容
下载资源
问答
  • 我们现在讨论这样一个问题:Action类里面成员变量是怎么通过表单传进来? 1.有这样一个Action类:EmployeeAction.java package com.yu.struts2.app; import java.util.Map; import org.apache.struts2....
    我们现在讨论这样一个问题:Action类里面的成员变量是怎么通过表单传进来的?
    

    1.有这样一个Action类:EmployeeAction.java
    1. package com.yu.struts2.app;

    2. import java.util.Map;

    3. import org.apache.struts2.interceptor.RequestAware;

    4. public class EmployeeAction implements RequestAware {

    5.     private Integer employeeId;

    6.     private Dao dao = new Dao();

    7.     public String list(){
    8.         requestMap.put("emps", dao.getEmployees());
    9.         return "list";
    10.     }

    11.     public String delete(){
    12.         dao.delete(employeeId);
    13.         return "delete";
    14.     }

    15.     private Map<String, Object> requestMap;

    16.     @Override
    17.     public void setRequest(Map<String, Object> arg0) {
    18.         // TODO Auto-generated method stub
    19.         this.requestMap = arg0;
    20.     }

    21.     public Integer getEmployeeId() {
    22.         return employeeId;
    23.     }

    24.     public void setEmployeeId(Integer employeeId) {
    25.         this.employeeId = employeeId;
    26.     }

    27. }

    2.struts2运行流程图-1:



        ActionProxy是Action的一个代理类。也就是说Action的调用是通过ActionProxy实现的,其实就是调用了ActionProxy.execute()方法,而该方法又调用了ActionInvocation.invoke()方法。
        ActionInvocation就是Action的调用者。ActionInvocation在Action的执行过程中,负责Interceptor、Action和Result等一系列元素的调度。

    3.由下面struts-default.xml文件中的参数如下:
    1. <interceptor-stack name="defaultStack">
    2.                 <interceptor-ref name="exception"/>
    3.                 <interceptor-ref name="alias"/>
    4.                 <interceptor-ref name="servletConfig"/>
    5.                 <interceptor-ref name="i18n"/>
    6.                 <interceptor-ref name="prepare"/>
    7.                 <interceptor-ref name="chain"/>
    8.                 <interceptor-ref name="scopedModelDriven"/>
    9.                 <interceptor-ref name="modelDriven"/>
    10.                 <interceptor-ref name="fileUpload"/>
    11.                 <interceptor-ref name="checkbox"/>
    12.                 <interceptor-ref name="datetime"/>
    13.                 <interceptor-ref name="multiselect"/>
    14.                 <interceptor-ref name="staticParams"/>
    15.                 <interceptor-ref name="actionMappingParams"/>
    16.                 <interceptor-ref name="params"/>
    17.                 <interceptor-ref name="conversionError"/>
    18.                 <interceptor-ref name="validation">
    19.                     <param name="excludeMethods">input,back,cancel,browse</param>
    20.                 </interceptor-ref>
    21.                 <interceptor-ref name="workflow">
    22.                     <param name="excludeMethods">input,back,cancel,browse</param>
    23.                 </interceptor-ref>
    24.                 <interceptor-ref name="debugging"/>
    25.                 <interceptor-ref name="deprecation"/>
    26.             </interceptor-stack>

    27.             <!-- The completeStack is here for backwards compatibility for
    28.                  applications that still refer to the defaultStack by the
    29.                  old name -->
    30.             <interceptor-stack name="completeStack">
    31.                 <interceptor-ref name="defaultStack"/>
    32.             </interceptor-stack>

        默认的拦截器为defaultStack,所以就有调用拦截器的顺序为exception、alias....,最后一个为deprecation
        在目标到达Action之前,还需要调用params拦截器:Parameters拦截器将把表单字段映射到ValueStack栈的栈顶对象的各个属性中。如果某个字段在模型里没有匹配的属性,Param拦截器将尝试ValueStack栈中的下一个对象。

    展开全文
  • 每个表单后面都有一个method属性当method=“post”时 那么另外一个接收信息页面接收方法必须一样也是$_post 如果接收方法不一致就会导致接收不到。例如:提交页姓名: 密码: (这里我们以获取到当前页面姓名和密码...

    在php中表单提交的方式有两种:

    1.post提交,这种安全性较高。

    2.get提交,他提交的是一个url地址,因此在从地址上面就可以看到许多信息,因此不安全。

    每个表单

    后面都有一个method属性当method=“post”时  那么另外一个接收信息页面的接收方法必须一样也是$_post  如果接收方法不一致就会导致接收不到。

    例如:提交页

    姓名:

    密码:

    (这里我们以获取到当前页面的姓名和密码为例)

    当点击提交的时候会跳转到另外一个接收信息的页面

    在接收页面里我们必须这样写

    $user = $_POST["username"];

    $pwd = $_POST["pwd"];

    echo $user."
    ";

    echo $pwd;

    然后输出  只要提交的方法和接收的方法 一致  那么你就成功了

    另外需要注意的是   在php中 除了使用上述办法实现页面跳转来获取值  我们班还可以使用标签和js里面的 location.href属性来实现跳转,

    但是标签和js里面的 location.href属性使用的方法都是$_GET方法。

    ajaxSubmit 页面生成的html 中含有表单提交表单方式

    $("#form_title").ajaxSubmit({ //页面生成的html 中含有表单提交表单方式 dataType: "json", success ...

    MVC中处理表单提交的方式(Ajax&plus;Jquery)

    MVC中处理表单有很多种方法,这里说到第一种方式:Ajax+Jquery 先看下表单:

    asp&period;net&period;mvc 中form表单提交控制器的2种方法和控制器接收页面提交数据的4种方法

    MVC中表单form是怎样提交? 控制器Controller是怎样接收的? 1..cshtml 页面form提交 (1)普通方式的的提交

    jQuery中防止表单提交两次的方法

    遇到过表单提交两次的情况,做个记录: 解决场景:首先是表单验证,其次是防止多次提交表单: jQuery中插件:validate_submitHandler_plugin,具体的可以使用关键字搜索: 使 ...

    Jquery表单提交后获取返回Json值

    1.给form添加id值:

    mvc中form表单提交的几种形式

    第一种方式:submit 按钮 提交

    关键字: ...

    VUE中关于表单提交的简单实现

    main.js import Vue from "../vue.js"; import App from "./App.js"; //启动 new Vue({ ...

    js中触发表单提交

    html代码:

    &l ...

    随机推荐

    Android:简单的弹幕效果达到

    首先,效果图.分类似至360检测到的骚扰电话页面: 布局非常easy,上面是一个RelativeLayout,以下一个Button. 功能: (1)弹幕生成后自己主动从右側往左側滚动(Translat ...

    Android数据库

    Android数据库 什么情况下我们才用数据库做数据存储? 大量数据结构相同的数据需要存储时.Android内置了sqlite,轻量级. 创建数据库的方法 创建一个类继承SqliteOpenHelpe ...

    OutOfMemoryError&sol;OOM&sol;内存溢出异常实例分析--堆内存溢出

    Java堆内存溢出 只要不断创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象, 那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常,代码如下: import ...

    【带着canvas去流浪(7)】绘制水球图

    目录 一. 任务说明 二. 重点提示 三. 示例代码 四. 文字淹水效果的实现 五. 关于canvas抗锯齿 六. 小结 示例代码托管在:http://www.github.com/dashnowor ...

    ubuntu16&period;04 backup and restore

    http://blog.csdn.net/qq_35523593/article/details/78545530

    SVN命令备忘录

    批量添加(先添加再上传) svn st | grep '^\?' | tr '^\?' ' ' | sed 's/[ ]*//' | sed 's/[ ]/\\ /g' | xargs svn add ...

    java 浅拷贝和深拷贝 对象克隆clone

    分一下几点讨论: 为什么要克隆? 如何实现克隆 浅克隆和深克隆 解决多层克隆问题 总结 一:为什么要克隆? 大家先思考一个问题,为什么需要克隆对象?直接new一个对象不行吗? 答案是:克隆的对象可能包 ...

    异常:Keyword not supported&colon; &&num;39&semi;data source&&num;39&semi;的解决办法

    将连接字符串中的&quot换为“'”,一个单引号即可. 详细解释:https://blogs.msdn.microsoft.com/rickandy/2008/12/09/explicit-c ...

    FZU 2150 fire game (bfs)

    Problem 2150 Fire Game Accept: 2133    Submit: 7494Time Limit: 1000 mSec    Memory Limit : 32768 KB ...

    C&plus;&plus; getline判断空行

    C++中getline用于逐行读取字符, 格式 getline(字符串,字符数) 将该行“字符数”个的字符读入“字符串” 如何判断所读是否为空行呢? strlen(字符串)==0就是空行

    展开全文
  • 最近在做项目时发现了一个问题,假如说你数据库表中有多个属性,但你在form表单中只需要提交并获取其中某个属性,这是应该怎么样写sql语句,例如插入语句:insert into table value(null,”data”,null);...

    最近在做项目时发现了一个问题,假如说你的数据库表中有多个属性,但你在form表单中只需要提交并获取其中的某个属性,这是应该怎么样写sql语句,例如插入语句:

    insert into table value(null,”data”,null);

    只需要把其他属性的位置填上null即可,但是在运行时也可能出现如下问题:

    Incorrect integer value: ” for column ‘id’ at row 1 Query: insert into student values(”,?,?,”,”) Parameters: [rrhg, gbgb]

    经过我检查,发现出现此问题的原因是我在最初设计表的时候把属性都设置成了”not null”非空模式,以至于出现了矛盾,这是只需把”not null”勾选掉即可。

    注:idea 中点击View–>Tool Windows–>Datebase, 然后idea便会在最右侧显示出Database框架,找到你对应的数据库,根据提示填上数据库的信息,idea便会显示出你数据库的所有内容,并且进行 相应的操作,比较方便。

    展开全文
  • 传统有通过域对象方法来挨个使用getParameter方法来获取表单数据再进行操作(比如封装到一个JavaBean等等),本文主要使用Struts2框架来获取表单数据。 在首先会通过最传统方法通过Servlet来获取表单数据,...

    前言

    在JavaWeb中,常常会遇到用户注册、提交表单数据等等,这个时候使用Struts2框架怎么获取页面的数据呢?传统的有通过域对象的方法来挨个使用getParameter方法来获取表单数据再进行操作(比如封装到一个JavaBean等等),本文主要使用Struts2框架来获取表单数据。

    在首先会通过最传统的方法通过Servlet来获取表单数据,接着会介绍三种获取表单数据的方式,最后会对这几种方式来进行比较。

    本文各类环境如下:

    Struts2版本:struts-2.5.16-all
    IDE:Intellij IDEA 2018.1

    此外关于添加Struts2 jar包不再叙述。

    Servlet域对象获取表单数据

    此处使用的是最原始的方式获取表单数据,主要是操作request域来获取数据的。

    方法步骤

    • 编写一个JavaBean(User),属性值为username、password。
    • 新建一个JSP页面。
    • 在action中通过ServletActionContext来获取request对象,通过request的getParameter方法来获取数据。
    • 将属性值封装到JavaBean中。

    具体实现

    1、编写JavaBean User
    新建一个包:com.dimple.entity,然后新建一个Class,名为User。

    public class User {
        private String username;
        private String password;
        /**
        * 省略部分get和set方法。
        */
    }
    

    2、新建一个JSP页面,名为login
    导入标签库:

    <%@ taglib prefix="s" uri="/struts-tags" %>

    新建一个form表单,body内容如下:

    <body>
    <s:form label="登陆" action="login">
        <tr>
            <td>
                账号:
            </td>
            <td>
                <input type="text" name="username"/>
            </td>
        </tr>
        <tr>
            <td>
                密码:
            </td>
            <td>
                <input type="text" name="password"/>
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="submit" value="登陆"/>
            </td>
        </tr>
    </s:form>
    </body>
    </html>

    3、新建一个包名为:com.dimple.actin,新建一个LoginAction类。

    public class LoginAction extends ActionSupport {
    
        @Override
        public String execute() throws Exception {
            //获取Request对象
            HttpServletRequest request = ServletActionContext.getRequest();
            //获取表单属性
            String password = request.getParameter("password");
            String username = request.getParameter("username");
            //将表单数据封装到JavaBean中
            User user = new User();
            user.setPassword(password);
            user.setUsername(username);
            //输出获取到的内容
            System.out.println(user.toString());
            return NONE;
        }
    }

    4、配置struts.xml

    <struts>
        <package name="login" extends="struts-default" namespace="/">
            <action name="login" class="com.dimple.action.LoginAction">
                <!--因为设置的返回值为none,所以不需要配置result标签-->
            </action>
        </package>
    </struts>

    PS:别忘了还有web.xml的filter标签哦。

    结果如下:
    输入账号密码后:

    QQ截图20180331202250

    output页面显示:

    QQ截图20180331202307

    属性封装

    属性封装是一种比原始方式好一点的一种做法,但是在实际工作中的使用和原始方式一样,用的不是特别多。是一种直接将表单属性封装到action属性的一种方法。

    实现步骤

    • 在action类中定义属性变量(注意:必须和jsp页面的属性值保持一致)
    • 生成get和set方法

    具体实现

    PS:直接在上一个示例上修改。

    修改loginAction代码如下:

    public class LoginAction extends ActionSupport {
        //定义变量
        private String username;
        private String password;
        //生成对应的get和set方法
    /**
    * 省略get和set方法
    */
        @Override
        public String execute() throws Exception {
            //将变量值封装到对象中
            User user=new User();
            user.setUsername(getUsername());
            user.setPassword(getPassword());
            System.out.println(user.toString());
            return NONE;
        }
    }
    

    结果如下:

    QQ截图20180331203115

    QQ截图20180331203100

    框架实现原理分析

    只能是最简单的白话文的分析:
    在action类中通过request域对象来获取变量名称和值,然后与action类中的成员变量名称进行比对,如果属性名一样,那么就调用set方法将值写入。

    模型驱动封装

    模型驱动封装是要实现Model Driven接口。

    实现步骤

    • 让action类继承Model Driven接口
    • 实现接口中的方法getModel();
    • 在action中创建JavaBean类对象

    具体实现

    action中代码如下:

    public class LoginAction extends ActionSupport implements ModelDriven<User> {
        //创建实体类对象
        User user=new User();
    
        @Override
        public String execute() throws Exception {
            System.out.println(user.toString());
            return NONE;
        }
        //实现接口中的方法,返回user
        @Override
        public User getModel() {
            return user;
        }
    }

    实现截图

    QQ截图20180331204004
    QQ截图20180331203952

    表达式封装

    表达式封装是用的比较多的,具体的原因后面的比较会说到。

    实现步骤

    • 在action类中声明JavaBean【注意只是声明,没有实现】
    • 生成实体类的get和set方法
    • 在JSP页面的form表单中使用表达式形式

    具体实现

    action类代码如下:

    public class LoginAction extends ActionSupport  {
        //只是声明并不实现
        User user;
    
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    
        @Override
        public String execute() throws Exception {
            System.out.println(user.toString());
            return NONE;
        }
    
    }

    Jsp页面中的body部分(注意和前面的进行比较):

    <s:form label="登陆" action="login">
        <tr>
            <td>
                账号:
            </td>
            <td>
                <input type="text" name="user.username"/>
            </td>
        </tr>
        <tr>
            <td>
                密码:
            </td>
            <td>
                <input type="text" name="user.password"/>
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="submit" value="登陆"/>
            </td>
        </tr>
    </s:form>
    </body>

    实现截图

    QQ截图20180331204604

    QQ截图20180331204556

    模型封装和表达式封装比较

    共同点:这两种方式都能够将数据直接封装到实体类中去。

    不同点:
    - 使用模型驱动封装的方式,由于在实现接口的时候,就指明了泛型为user,这样就只能够将数据封装到一个实体类中。
    - 使用表达式封装,在JSP页面就已经设置了该数据传入的对象,所以是可以将数据封装到多个实体类中的,只不过是在action方法中再多生成几个get和set方法而已。

    总结

    获取表单数据,这样就能与用户进行数据交互。同时,表达式封装还可以封装List、Map等等。其实方法都一样,生成对应的额get和set方法,区别主要是在JSP页面中的写法,比如封装到List中,那么JSp页面可能就要这样写了

    <input type="text" name="list[0].password"/>

    同理,封装到Map呢?map是键值对的结构,那么肯定是不能按照list(类似于数组)的方式来。通过使用键来获得值:
    `
    <input type="text" name="map['key'].password"/>

    展开全文
  • Javaweb表单提交及获取属性

    千次阅读 2017-06-08 19:55:49
    最近在做项目时发现了一个问题,假如说你数据库表中有多个属性,但你在form表单中只需要提交并获取其中某个属性,这是应该怎么样写sql语句,例如插入语句: insert into table value(null,"data",null); 只...
  • 前言在JavaWeb中,常常会遇到用户注册、提交表单数据等等,这个时候使用Struts2框架怎么获取页面数据呢?传统有通过域对象方法来挨个使用getParameter方法来获取表单数据再进行操作(比如封装到一个JavaBean...
  • antd form 表单 怎么验证获取多选下拉框对象数组→循环判断option选项selected属性ant designForm组件怎么设置ref值antdform input输入框怎么限制不能输入空格比如你INPUT是: 那么你在里边加入:...
  • 实现方式:表单,value列表项值,title自定义属性天数 title2自定义属性价格套餐组:请选择充值套餐{volist name="tc_list" id="vo"}{$vo.task_name}{/volist}htmljs layui方式监听selectchange事件。...
  • 操作起来比较简单我们在实际操作tree组件和后台交互时候一般都是需要将父节点传过去,如图:点击原子零件和零件加工时候需要把产品服务id给后台传过去在实现之前,需要给大家画出来antd中标出来相关属性(敲...
  • 然后在JavaScript地方用form名字来调用form表单里input元素value属性;接着把值赋给“a”;最后用js“alert()”方法打印出来即可。其实使用js进行input值的获取,方法还是挺多,光是用选择器好几种都能...
  • 从提交表单到控制器后按钮属性但结果无法获取数据名称和数据单击值.我们怎么试试呢?解决方法:如果你想通过Normal Form Post发布这两个数据.然后使用隐藏输入字段: –要么:-{{ Form::hidden('data...
  • 详细内容其实使用js进行input值的获取,方法还是挺多,光是用选择器好几种都能...}这是获取网页input值方法之一,给from一个名字然后在JavaScript地方就可以用form名字来调用form表单里input元素value属性...
  • 我jsp的登入form表单通过action属性把信息提交到一个servlet上了,也进行了处理,没有出错。...表单的action属性去掉,通过"登入"的一个点击事件,用Ajax进行表单信息提交可是也行不通因为没有反应。
  • 最近做项目时,发现手机客户端通过http协议post方式上传数据到服务端,在...这是怎么回事呢,后来发现这种情况跟form表单的属性 enctype有关系。 HTML中的form表单有一个关键属性 enctype=application/x-www-form
  • 实现了最基本动态表单配置,此时回过头来看activiti里面动态表单配置,发现里面有两个配置属性,第一个是表达式,第二个是变量。 这两个意思理解了一下,将组件值与变量关联,然后通过表达式获取。 acitivit...
  • PDF编辑器拥有人性化PDF使用体验,你可以通过一组工具创建及设计交互式PDF表单的表单域,添加文本域、复选框、列表框等按钮进行交互式PDF表单创建及属性的确认。而PDF表单也被称为“智能表单”,与Word、Excel...
  • 在这次一个小项目中用到了文件上传,在...具体来说说它是怎么吧:首先肯定是先放入这个input:我只是写了这个,其他什么都没有加,这个时候运行起来就看到页面上已经有了这个:这个按钮就是这个属性自带...
  • 在做项目时候,常常碰到要...属性,但是我们为表单添加该属性的时候页面就会以另外一种方式(具体怎么变化还有待于调查)提交,导致在服务器端用request.getParameter(name)无法正常的获取信息,一般得到都为null...
  • PDF模版中有个AcroFields(表单域),该表单域名字为:address ,在模版中设置该表单域对齐方式为:居左,现在想在java 代码中通过itext获取表单域名字为address对齐方式属性怎么
  • getParameter(name):根据表单中name属性的名,获取value属性的值 getParameterValues(name):复选框专用.当没有勾选时,长度是null.而不是0,此时不能判断长度,只能判断null! 意思就是获取重名namevalue值,...
  • 讲这些,我们先来了解一下request.setAttribute和request.setAttribute()这两种...(其实表单控件中Objectname与value是存放在一个哈希表中,所以在这里给出Objectname会到哈希表中找出对应它value)reque...
  • 今日背诵小纸条非表单元素属性表单元素是指内容标签,如、等对象属性基本和标签属性相同,如href、title、id、src但其中注意标签class属性对应为className注:1 this几种情况 情况 含义 普通函数中this ...
  • 我是刚入职初级程序员,公司现在在做项目是SPRINGMVC+EXTJS。数据库oracle 。 之前一直没学过EXTJS。因为项目快验收了,网上资料很杂,不得已...**现在我想把DATA中数据改成从ORACLE数据库中读取应该怎么做**
  • 一、网页下拉列表自动填写,怎么实现呢?看看需要实现自动填写下拉列表吧。所在地区,首先需要选择省,然后才能选择市。我们用网页自动操作通用工具实现。下面我们来讲讲实现步骤。首先,打开网页自动操作通用...
  • 如下图:前段数据页面在这不演示了,提交表单后,后台服务器获取各种属性,传递到数据处理层,也就是数据库插入操作。代码执行: //数据传递 public void getEmpList(String name, Strin...
  • 现象作为一名前端开发,「表单开发」是我们家常便饭,一般我们需要做以下重复性工作: 编写模板 编写校验规则 * 获取数据,提交表单同时,后台服务也需要编写校验规则,随着业务变动或者沟通不及时,前后端校验...
  • 利用这个实体对象来获取表单数据 表单只有user和password两个元素,但是bean还有其它属性。比如name email之类,却是""而不是null。 这样把对象传到Hibernatecriteria来查询就不凑效了,怎么解决啊? [b]问题...
  • 当提交表单里包含文件上传时候,即Formenctype属性值为multipart/form-data时,后台是无法像普通表单那样通过request.getParameter来获取用户提交数据。(说实话,我经常因为忘记这个问题而浪费好多调查时
  • 我做一个找回密码的功能,将邮箱收到的验证码复制到表单提交时,我获取表单的name属性与验证码进行判断。我想知道发给邮箱验证码的name怎么获取? 求大神支招
  • ``` ``` ...类似这样name相同情况,是无法用request.Form[""]来获取value,网上有些贴说可以用value属性,但我试过也没有value属性。想请教大家有没有方法获得?或是有其他方式替代

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 175
精华内容 70
关键字:

怎么获取表单的属性