以配置形式写表单

该代码示例展示了如何在Vue.js应用中创建一个可配置的表单组件,通过v-for循环动态渲染表单项,支持select、input和switch等类型,表单数据与formData数组关联,允许用户自定义输入和选择项。
摘要由CSDN通过智能技术生成

表单通用组件 通过循环配置项

<template>
  <el-dialog title="新增" :visible.sync="show" center @close="dialogClose">
    <el-form :model="form">
      <el-form-item
        :label="item.label"
        :label-width="formLabelWidth"
        v-for="(item, index) in formData"
        :key="index"
      >
        <el-select
          v-if="item.type == 'select'"
          v-model="form.class"
          :placeholder="item.placeholder"
        >
          <el-option label="类别一" value="1"></el-option>
          <el-option label="类别二" value="2"></el-option>
        </el-select>
        <!--根据type判断使用标签-->
        <el-input
          :placeholder="item.placeholder"
          v-model="form.name"
          v-if="item.type == 'input'"
          autocomplete="off"
          style="width: 215px"
        ></el-input>
        <el-switch
          v-if="item.type == 'switchType'"
          v-model="value"
          active-color="#00E266"
          inactive-color="#CCCCCC"
        >
        </el-switch>
      </el-form-item>
      <slot></slot>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button @click="dialogCancle">取 消</el-button>
      <el-button type="primary" @click="dialogOk">确 定</el-button>
    </div>
  </el-dialog>
</template>

<script>
  export default {
    props: {
      dialogFormVisible: {
        default: false,
        type: Boolean
      },
      form: {
        default: {},
        type: Object
      },
      formData: {
        default: [],
        type: Array
      }
    },
    data() {
      return {
        value: true,
        show: this.dialogFormVisible,
        formLabelWidth: '120px'
      }
    },
    watch: {
      dialogFormVisible(val, val2) {
        this.show = val
      }
    },
    methods: {
      dialogClose() {
        this.show = false
        this.$emit('show', this.show)
      },
      dialogCancle() {
        this.show = false
        this.$emit('show', this.show)
      },
      dialogOk() {
        this.show = false
        this.$emit('show', this.show)
      }
    }
  }
</script>

<style>
</style>

配置项js

      formData: [
        {
          // 标签类别
          type: 'select',
          label: '类别',
          placeholder: '请选择活动区域'
        },
        {
          type: "input",
          label: '标题',
          placeholder: '请输入标题'
        }, {
          type: "input",
          label: '作者',
          placeholder: '请输入作者'
        }, {
          type: 'switchType',
          label: '开关'
        }],
在Java中,发起API请求通常是指通过HTTP协议与服务器进行数据交互。以表单形式发起API请求,通常是指使用HTTP的POST方法来提交表单数据。以下是使用Java发起表单形式API请求的几种常见方法: 1. 使用`HttpURLConnection`类: 这是Java标准库提供的一个用于处理HTTP请求的类。可以通过创建一个`HttpURLConnection`实例,设置请求方法为"POST",并通过输出流表单数据来发起请求。 ```java URL url = new URL("http://example.com/api"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setDoOutput(true); OutputStream os = conn.getOutputStream(); Writer writer = new OutputStreamWriter(os, "UTF-8"); writer.write("param1=value1&param2=value2"); writer.flush(); writer.close(); os.close(); // 读取响应 BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuilder response = new StringBuilder(); String responseLine = null; while ((responseLine = br.readLine()) != null) { response.append(responseLine.trim()); } br.close(); System.out.println(response.toString()); ``` 2. 使用Apache HttpClient库: Apache HttpClient是一个功能强大的HTTP客户端库,支持多种HTTP请求方式,包括以表单形式提交数据。 ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://example.com/api"); List<NameValuePair> formParams = new ArrayList<>(); formParams.add(new BasicNameValuePair("param1", "value1")); formParams.add(new BasicNameValuePair("param2", "value2")); httpPost.setEntity(new UrlEncodedFormEntity(formParams)); HttpResponse response = httpClient.execute(httpPost); HttpEntity entity = response.getEntity(); System.out.println(EntityUtils.toString(entity)); ``` 3. 使用OkHttp库: OkHttp是一个处理HTTP请求的客户端库,简洁高效,支持同步和异步请求。 ```java OkHttpClient client = new OkHttpClient(); RequestBody formBody = new FormBody.Builder() .add("param1", "value1") .add("param2", "value2") .build(); Request request = new Request.Builder() .url("http://example.com/api") .post(formBody) .build(); Response response = client.newCall(request).execute(); if (response.isSuccessful()) { System.out.println(response.body().string()); } ``` 4. 使用Java内置的`javax.servlet.http.Part`和`javax.servlet.http.HttpServletRequest`类: 这种方法适用于在Java Web应用中处理表单数据。 ```java // 假设在servlet中处理请求 @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Part part = req.getPart("file"); // 获取文件类型的表单字段 String formData = req.getParameter("param1"); // 获取普通表单字段 // 处理表单数据... } ``` 请注意,实际开发中还需要处理异常情况、字符编码、内容类型等问题,并且可能需要配置额外的请求头信息,例如设置`Content-Type`为`application/x-www-form-urlencoded`来表明提交的是表单数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值