как добавить тегдинамически в таблице на странице JSP с помощью сценария Java? - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть одна jsp-страница, на которой я хочу иметь несколько входов с различными типами ввода встроенной таблицы Row, чтобы любая строка представляла собой один объект с несколькими полями. Знаете, я использую эту ссылку для разработки таблицы https://bootsnipp.com/snippets/402bQ

знаю, когда я использую <form:input> вместо <input> в моем файле сценария после добавления строки, я не могу написать что-либо встроенное Можете ли вы помочь мне добавить <form:input ..../> в таблицу, пока я могу использовать его в Spring MVC контроллер? спасибо

Приложение демо-изображения https://ibb.co/ThFjnMz

Мой код javaScript:

$(document).ready(function () {
    var counter = 0;
    var counter_rs = 0;

    var cnt_rd = 0;
    var cnt_rsd = 0;

    $("#addrow").on("click", function () {
        var newRow = $("<tr>");
        var cols = "";

        var path_val = "ruleDetails["+cnt_rd+"]";

        cols += '<td><form:input path='+path_val+".operationType"+' type="text" class="form-control" name="op_type' + counter + '"/></td>';
        cols += '<td><form:input path='+path_val+".MinPrice"+' type="number" class="form-control" name="min' + counter + '"/></td>';
        cols += '<td><form:input path='+path_val+".MaxPrice"+' type="number" class="form-control" name="max' + counter + '"/></td>';
        cols += '<td><form:input path='+path_val+".FixValue"+' type="number" class="form-control" name="fix' + counter + '"/></td>';
        cols += '<td><form:input path='+path_val+".perValue"+' type="number" class="form-control" name="per' + counter + '"/></td>';



        // cols += '<td><input type="text" class="form-control" name="op_type' + counter + '"/></td>';
        // cols += '<td><input type="number" class="form-control" name="min' + counter + '"/></td>';
        // cols += '<td><input type="number" class="form-control" name="max' + counter + '"/></td>';
        // cols += '<td><input type="number" class="form-control" name="fix' + counter + '"/></td>';
        // cols += '<td><input type="number" class="form-control" name="per' + counter + '"/></td>';


        cols += '<td><input type="button" class="ibtnDel btn btn-md btn-danger "  value="Delete"></td>';
        newRow.append(cols);
        $("table.order-list").append(newRow);
        counter++;
        cnt_rd++;
    });



    $("table.order-list").on("click", ".ibtnDel", function (event) {
        $(this).closest("tr").remove();
        counter -= 1
    });


    $("#addrow_rs").on("click",function () {

        var _newRow = $("<tr>");
        var _cols = "";


        var _path_val = "ruleShareDetails["+cnt_rsd+"]";

        _cols += '<td><form:input path='+_path_val+".operationType"+' type="text" class="form-control" name="op_type' + counter_rs + '"/></td>';
        _cols += '<td><form:input path='+_path_val+".minCount"+' type="number" class="form-control" name="min_val' + counter_rs + '"/></td>';
        _cols += '<td><form:input path='+_path_val+".maxCount"+' type="number" class="form-control" name="max_val' + counter_rs + '"/></td>';
        _cols += '<td><form:input path='+_path_val+".per1"+'  type="number" class="form-control" name="per1' + counter_rs + '"/></td>';
        _cols += '<td><form:input path='+_path_val+".per2"+' type="number" class="form-control" name="per2' + counter_rs + '"/></td>';
        _cols += '<td><form:input path='+_path_val+".per3"+' type="number" class="form-control" name="per3' + counter_rs + '"/></td>';
        _cols += '<td><form:input path='+_path_val+".per4"+' type="number"  class="form-control" name="per4' + counter_rs + '"/></td>';

        _cols += '<td><input type="button" class="MyibtnDel btn btn-md btn-danger "  value="Delete"></td>';
        _newRow.append(_cols);
        $("table.order-list-share").append(_newRow);
        counter_rs++;
        cnt_rsd++;
    });


    $("table.order-list-share").on("click", ".MyibtnDel", function (event) {
        $(this).closest("tr").remove();
        counter_rs -= 1
    });


});



function calculateRow(row) {
    var price = +row.find('input[name^="price"]').val();

}

function calculateGrandTotal() {
    var grandTotal = 0;
    $("table.order-list").find('input[name^="price"]').each(function () {
        grandTotal += +$(this).val();
    });
    $("#grandtotal").text(grandTotal.toFixed(2));
}

и моя страница JSP

 <form:form  action="${pageContext.request.contextPath}/addrulemodal" method="post"
                        modelAttribute="ruleshare" enctype="multipart/form-data">



                <!--Rule Detail-->
                <div class="border-bottom  mb-5">

                    <div class="form-group col-md-6 mx-auto">
                        <label for="title">title</label><form:errors path="title" cssClass="text-danger"/>
                        <form:input path="title" id="title" cssClass="form-control"/>
                    </div>
                    <div class="form-group col-md-6 align-content-center mx-auto">
                        <div class="form-check">
                            <div class="form-check">
                            <form:checkbox path="enabled" id="enable" value="enabled" cssClass="margin-right-20"/>
                            <label for="enable" class="custom-my-fonts">Enabled</label>
                            </div>
                        </div>
                    </div>

                    <h5 class="text-left text-dark pt-5">Rule Details</h5>
                </div>

                <div class="border-bottom mb-5">


                    <table id="tbl_rule_detail" class="table order-list">
                        <thead class="thead-dark">
                        <tr>
                            <th>operationType</th>
                            <th>MinVal</th>
                            <th>MaxVal</th>
                            <th>FixVal</th>
                            <th>perVal</th>
                        </tr>
                        </thead>
                        <tbody>



                        </tbody>
                        <tfoot>
                        <tr>
                            <td colspan="5" style="text-align: center">
                                <input type="button" class="btn btn-lg btn-block" id="addrow" value="AddRuleDetail">
                            </td>
                        </tr>
                        </tfoot>
                    </table>



                    <h5 class="text-left text-dark pt-5">Rule Share Details</h5>
                </div>


                <table id="tbl_rule_share_detail" class="table order-list-share">
                    <thead class="thead-dark">
                    <tr>
                        <th>operationType</th>
                        <th>MinValue</th>
                        <th>MaxValue</th>
                        <th>Per1</th>
                        <th>per2</th>
                        <th>per3</th>
                        <th>per4</th>
                    </tr>
                    </thead>
                    <tbody>

                    </tbody>
                    <tfoot>
                    <tr>
                        <td colspan="5" style="text-align: center">
                            <input type="button" class="btn btn-lg btn-block" id="addrow_rs" value="AddRuleShareDetail">
                        </td>
                    </tr>
                    </tfoot>
                </table>

                <button type="submit"
                        class="col-md-3 mx-auto btn-primary btn-lg align-content-center btn-block mb-5">Add
                    Rule
                </button>

            </form:form>

Мое правило модели класса

package com.calcex.model;

import javax.persistence.*;
import java.util.List;

@Entity
@Table(name = "rule_tbl")
public class Rule {


    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String title;
    private boolean enabled;

    @OneToMany(mappedBy = "rule")
    List<RuleDetails> ruleDetails;

    @OneToMany(mappedBy = "rule_share")
    List<RuleShareDetail> ruleShareDetails;

    @OneToMany(mappedBy = "rule_ds")
    List<DeviceSum> deviceSumList;

    @OneToMany(mappedBy = "rule_trs")
    List<infoExcel> infoExcelList;

    @OneToMany(mappedBy = "rule_report")
    List<MontlyReport> montlyReportList;

    public Rule() {
    }

    public Rule(Long id, String title, boolean enabled) {
        this.id = id;
        this.title = title;
        this.enabled = enabled;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public boolean isEnabled() {
        return enabled;
    }

    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }

    public List<RuleDetails> getRuleDetails() {
        return ruleDetails;
    }

    public void setRuleDetails(List<RuleDetails> ruleDetails) {
        this.ruleDetails = ruleDetails;
    }

    public List<RuleShareDetail> getRuleShareDetails() {
        return ruleShareDetails;
    }

    public void setRuleShareDetails(List<RuleShareDetail> ruleShareDetails) {
        this.ruleShareDetails = ruleShareDetails;
    }

    public List<DeviceSum> getDeviceSumList() {
        return deviceSumList;
    }

    public void setDeviceSumList(List<DeviceSum> deviceSumList) {
        this.deviceSumList = deviceSumList;
    }

    public List<infoExcel> getInfoExcelList() {
        return infoExcelList;
    }

    public void setInfoExcelList(List<infoExcel> infoExcelList) {
        this.infoExcelList = infoExcelList;
    }

    public List<MontlyReport> getMontlyReportList() {
        return montlyReportList;
    }

    public void setMontlyReportList(List<MontlyReport> montlyReportList) {
        this.montlyReportList = montlyReportList;
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...