java jersef rest接收html表单提交

在上传的文件的时候,前台的html的表单,通常会写出enctype="multipart/form-data"格式的,很多人这时候会困惑。通过request.getparameter()接收请求的时候,接收的参数都是null,后台接收不到。有人直接通过servelt去获取,有人通过struts去获取。我的解决方案是通过jersef的rest来解决的。

表单提交两次,在submit按钮的时候写了个onclick方法。按钮先提交submit,将文件上传到服务器。再通过ajax方法传到映射的后台。

如下:

    

function sub() {

        $("#addforms").submit(); ///

        $.ajax({
                cache : true,
                type : "POST",
                url : "/XysVersionManager/services/appVersion/postParam",
                //data : "vercode="+vercode+"&msg="+msgs+"&isFlag="+isFlag,// 你的formid
                data:$("#addforms").serialize(),// 你的formid
                async : false,
                success : function(msg) {
                    if (msg == "1") {
                        alert("修改成功");
                    } else {
                        alert("修改失败");
                    }
                    }

            });
    }

ajax提交后台的数据,如果使用request.getParameter()接收的话也是null.这时候就需要使用rest的内置标签了。有两种接收方式。

第一种是:@FormParam。后台java类可以定义方法如

public String postData(@Context HttpServletRequest request,@Context HttpServletResponse response,@FormParam("versionCode") String vercode,@FormParam("msg") String msg,@FormParam("isFlag") String isFlag){
              appVersionService=new AppVersionService();
             String app;
             String value="";
            try {
                boolean flag=appVersionService.addAppVersion(vercode,msg,isFlag);
                value=String.valueOf(flag);
            } catch (Exception e) {
                e.printStackTrace();
            }
             return value;
         }

@FormParam定义的参数可以去接收前台传递的参数。接收的值不再是null.

  第二种方式:内置集合MultivaluedMap<String, String>。使用方法如下:

public String postData(@Context HttpServletRequest request,@Context HttpServletResponse response,MultivaluedMap<String, String> parameter){
              appVersionService=new AppVersionService();
             String app;
             String value="";
            try {
                String output = " Form parameters :\n";
                for (String key : parameter.keySet()) {
                    output += key + " : " + parameter.getFirst(key) +"\n";

                    System.out.println("key:"+key+",param:"+parameter.getFirst(key));

                }

            } catch (Exception e) {
                e.printStackTrace();
            }
             return value;
         }

使用方法parameter.keySet()获取到表单内置标签的id,获取到key,parameter.getFirst(key),根据key可以获取到表单的值。

这样的话就可以接收到表单传递的参数了。可以实现form里面内嵌上传的file标签了。

java jersef rest接收html表单提交

时间: 2024-08-29 03:08:07

java jersef rest接收html表单提交的相关文章

SpringMVC中使用bean来接收form表单提交的参数时的注意点

这是前辈们对于SpringMVC接收表单数据记录下来的总结经验: SpringMVC接收页面表单参数 springmvc请求参数获取的几种方法 下面是我自己在使用时发现的,前辈们没有记录的细节和注意点: 使用bean来接收form表单提交的参数时,pojo中必须含有默认的(即空的)构造函数,同时,需要设置到bean中的变量必须有setter方法. 注:以下代码均为示例代码,非本人实际运行代码,请自行补充. 例如:我有一个bean类是User,具有变量username和password.同时,表单

Java EE之servlet处理表单提交的请求

1.在源包下新建一个Servlet页,取名为LoginServlet: package weinidingServlet;                            //该Servlet所在的包 import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import java

学习java前端 两种form表单提交方式

第一种:原生方式 注意点:button标签的style为submit <form action="/trans/doTrans.do" method="post"> 转出卡号:${cardNo} <br> 转出卡号余额:${balance}元 <br> <br> 转入卡号:<input name="checkInCardNo" type="text"> <br&

ajax传递数组、form表单提交对象数组

在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致,那么传值就没有什么问题.不过,在前几天的开发任务中,遇到了需要批量传递对象,也就是需要传递对象数组,在此做个总结.今天又遇到需要向后台传递数组,便一并写下来吧. 1.ajax传递普通数组 前台代码 var deleteNum= [];//定义要传递的数组 deleteNum.push("1"); deleteNum.push(&qu

Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交

在Java EE应用编程中Servlet是基础,JSP是建立在Servlet基础之上的,其他Web框架如Struts.WebWork和Spring MVC都是基于Servlet的.本文主要讲述MyEclipse和Tomcat配置Servlet的过程和简单实现表单提交功能. 希望对大家有所帮助,参考书籍<Java EE企业级应用开发实例教程>. Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门 一. Servlet编程 1.Web基础知识 在讲述Servlet之前,

java android布局里的控件值 反射绑定给实体类,实体类绑定给控件,表单提交绑定很有用

注意了:根据实际情况,添加实体里字段的类型,控件类型的判断才可使用.这里控件只有TextView EditText 实体类字段只有String int类型,带值的控件添加tag ,值和实体类的字段值一致 package ice.ui.service; import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import jav

Android实现表单提交,webapi接收

1.服务端采用的是.net的WEBAPI接口. 2.android多文件上传. 以下为核心代码: 1 package com.example.my.androidupload; 2 3 4 import android.util.Log; 5 6 import java.io.File; 7 import java.io.Serializable; 8 import java.util.Iterator; 9 import java.util.LinkedHashMap; 10 import j

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

MVC中表单form是怎样提交? 控制器Controller是怎样接收的? 1..cshtml 页面form提交 (1)普通方式的的提交 (2)特殊方式提交 2.控制器处理表单数据的四种方法 方法1:使用传统的Request请求数据 方法2:Action参数名与表单元素name值一一对应 方法3:从MVC封装的FormCollection容器中读取 方法4:使用实体作为Action参数传入,前提是提交的表单元素名称与实体属性名称一一对应 控制器源码 using MvcStudy.Models;u

input from 表单提交 使用 属性 disabled=&amp;quot;disabled&amp;quot; 后台接收不到name=&amp;quot;username&amp;quot;的值

input from 表单提交 使用 属性 disabled="disabled" 后台接收不到name="username"的值