我可以使用hibernate在单个jsp中拥有多个表单动作(表单内部形式)

时间:2017-05-24 10:00:38

标签: spring forms hibernate jsp action

在这个jsp中,我使用了2个表单操作,一个用于保存角色(表:定义角色),另一个用于从其他表调用删除列表(table:solutionList)。

点击提交后,它没有做任何事情。

如果我删除此表单(solutionMaster.html)

我收到此错误"无效的属性' sMName' bean类[com.mode; .definingrole]:Bean属性' sMName'不可读或getter方法无效:getter的返回类型是否与setter的参数类型匹配?。

是的,我知道原因,因为专栏' sMName'不是定义角色表的一部分。怎么做。

我想知道的是,

  1. 我们可以在表单内创建表单吗?
  2. 2.如果没有创建另一个表单,我怎样才能将其他表的列值定义为定义角色表?

    请帮忙。

    提前致谢。!!!

      <div class="modal inmodal" id="myModalForRole" tabindex="-1"
                        role="dialog" aria-hidden="true">
                        <div class="modal-dialog">
                            <div class="modal-content animated bounceInRight">
                                <div class="modal-header">
                                    <button type="button" class="close" data-dismiss="modal">
                                        <span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
                                    </button>
                                    <i class="fa fa-laptop modal-icon"></i>
                                    <h4 class="modal-title">Define Role</h4>
    
                                </div>
                                <div class="modal-body">
                                    <form:form action="newRoleDetails.html" method="post"
                                        commandName="deftemp" id="deftemp">
                                        <div class="row">
                                            <div class="form-group">
                                            <form:form action="solutionName.html" method="post"
                                                    commandName="soltemp" id="soltemp"> 
                                                <div class="col-sm-6">
                                                    <label>Solutions*</label><br>
    
    
                                                    <form:select path="sMName" class="form-control"
                                                        id="sMName">
                                                        <form:option value="" label="--select--"></form:option>
                                                        <c:forEach var="solutionList" items="${solutionList}"
                                                            varStatus="loop">
                                                            <form:option value="${solutionList}"
                                                                label="${solutionList}">
                                                            </form:option>
                                                        </c:forEach>
                                                    </form:select>
                                                </div>
                                                 </form:form> 
                                            </div>
                                        </div>
                                        <div class="row">
                                            <div class="form-group">
                                                <div class="col-sm-6">
                                                    <label>Parent Role*</label><br>
                                                    <form:textarea path="ParentRole" id="ParentRole"
                                                        class="form-control" placeholder="Enter the Parent Role" />
                                                </div>
                                            </div>
                                        </div>
                                        <div class="row">
                                            <div class="form-group">
                                                <div class="col-sm-6">
                                                    <label>Sub Role*</label><br>
                                                    <form:textarea path="SubRole" id="SubRole"
                                                        class="form-control" placeholder="Enter the Child role" />
                                                </div>
                                            </div>
                                        </div>
                                        <br>
                                        <br>
                                        <div class="modal-footer">
                                            <button type="button" class="btn btn-white"
                                                data-dismiss="modal">Close</button>
                                            <button type="submit" class="btn btn-primary">Submit
                                            </button>
                                        </div>
                                    </form:form>
                                </div>
    

    模型:(solutionlist.java)

    package com.model;
    
    import java.io.Serializable;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    
    @Entity
    @Table (name="solutionlist")
    public class solutionlist implements Serializable{
    
        private static final long serialVersionUID = 1L;
    
        @Id
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        @Column(name="solutionId",nullable = false,columnDefinition = "UNSIGNED INT(4)")
        Integer solutionId;
    
        @Column(name="solutionName")
        String solutionName;
    
        @Column(name="solutionOwner")
        String solutionOwner;
    
        @Column(name="ownerMailId")
        String ownerMailId;
    
        @Column(name="additionDate")
        String additionDate;
    
        public Integer getSolutionId() {
            return solutionId;
        }
    
        public void setSolutionId(Integer solutionId) {
            this.solutionId = solutionId;
        }
    
        public String getSolutionName() {
            return solutionName;
        }
    
        public void setSolutionName(String solutionName) {
            this.solutionName = solutionName;
        }
    
        public String getSolutionOwner() {
            return solutionOwner;
        }
    
        public void setSolutionOwner(String solutionOwner) {
            this.solutionOwner = solutionOwner;
        }
    
        public String getOwnerMailId() {
            return ownerMailId;
        }
    
        public void setOwnerMailId(String ownerMailId) {
            this.ownerMailId = ownerMailId;
        }
    
        public String getAdditionDate() {
            return  new SimpleDateFormat("yyyy-MM-dd HH-mm-ss.SSS")
            .format(new Date());
        }
    
        public void setAdditionDate(String additionDate) {
            this.additionDate = additionDate;
        }
    }
    

    definingrole.java

    package com.model;
    
    import java.io.Serializable;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    
    @Entity
    @Table(name="definingrole")
    public class definingrole implements Serializable{
    
        private static final long serialVersionUID = 1L;
    
        @Id
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        @Column(name="SNo")
        Integer SNo;
    
        @Column(name="Solutions")
        String Solutions;
    
        @Column(name="ParentRole")
        String ParentRole;
    
        @Column(name="SubRole")
        String SubRole;
    
        public Integer getSNo() {
            return SNo;
        }
    
        public void setSNo(Integer sNo) {
            SNo = sNo;
        }
    
        public String getSolutions() {
            return Solutions;
        }
    
        public void setSolutions(String solutions) {
            Solutions = solutions;
        }
    
        public String getParentRole() {
            return ParentRole;
        }
    
        public void setParentRole(String parentRole) {
            ParentRole = parentRole;
        }
    
        public String getSubRole() {
            return SubRole;
        }
    
        public void setSubRole(String subRole) {
            SubRole = subRole;
        }
    }
    

    Controller:newRoleDetails.html

    @RequestMapping(value=NEWROLEDETAILS_PATH)
        public String newRoleDetails(Map<String, Object> model, definingrole value,solutionlist sol) throws Exception {
            Authentication auth = SecurityContextHolder.getContext().getAuthentication();
            String name = auth.getName();
            String nameOfUser=TemplateService.getEmpNameOfUser(name);
            model.put("nameOfUser",nameOfUser);
            String userid=loginService.getUserId();
            String role=loginService.getRole(); 
    
            TemplateService.newRoleDetails(value);
            definingrole deftemp=new definingrole();
            model.put("deftemp", deftemp);
            solutionlist s = new solutionlist();
    
            ArrayList<templateDetails> listOfTemplate=TemplateService.listTemplateDetails(role,userid);
            model.put("listOfTemplate",listOfTemplate);
                return TEMPLATESUMMARY;
        }
    

    controller:solutionName.html

    @RequestMapping("/solutionlist.html")
        public String solutionName(Map<String, Object> model,solutionlist sol) throws Exception {
            Authentication auth = SecurityContextHolder.getContext().getAuthentication();
            String name = auth.getName();
            String nameOfUser=TemplateService.getEmpNameOfUser(name);
            model.put("nameOfUser",nameOfUser);
            solutionlist soltemp = new solutionlist();
            model.put("soltemp", soltemp);
            ArrayList<String> solutionList=TemplateService.getSolutionListForTemplate();
            model.put("solutionList", solutionList);
            return REDIRECT_TEMPLATESUMMARY_URL;
        }
    

1 个答案:

答案 0 :(得分:2)

您正尝试在/solutionlist.html标记下填写表单内的列表。哪种方法不对。您无法通过formGET获得价值。如果您想使用/solutionlist.html控制器,则必须至少拨打solutionList

如果我认为那么你必须做以下

  1. 您不需要&#39; /solutionlist.html'控制器。
  2. 只需将ArrayList GET绑定到表单页面所服务的控制器方法中的模型中。我的意思是控制器的ArrayList<String> solutionList=TemplateService.getSolutionListForTemplate(); model.put("solutionList", solutionList);方法,其中提供给定的表单。

    solutionList

  3. 您将select直接作为值获得表单。因此,修改表单的<select name="solutions"path="Solutions"> <c:forEach items="${solutionList}" var="solution"> <option value="${solution}">${solution}</option> </c:forEach> </select>部分如下

    https://developers.google.com/apis-explorer/#p/drive/v3/drive.permissions.list?fileId=<your_file_id>&fields=permissions&_h=1&