Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从视图中传递多对多对象_Java_Hibernate_Spring Mvc_Thymeleaf - Fatal编程技术网

Java 如何从视图中传递多对多对象

Java 如何从视图中传递多对多对象,java,hibernate,spring-mvc,thymeleaf,Java,Hibernate,Spring Mvc,Thymeleaf,我试图在表单提交中发布一组关键字。当字段为空或数据为空时,控制器接受该字段,但当我试图提交填充表单数据时,抛出错误,错误代码为“400”,表示“客户端发送的请求在语法上不正确”。 无论是在我的控制器上还是在视图中,我都很难跟踪错误 我已经包括了我的代码的控制器、模型和视图。先谢谢你 竞选班 @Entity @Table(name = "CAMPAIGN") public class Campaign implements Serializable { @Id @Column(name = "I

我试图在表单提交中发布一组关键字。当字段为空或数据为空时,控制器接受该字段,但当我试图提交填充表单数据时,抛出错误,错误代码为“400”,表示“客户端发送的请求在语法上不正确”。 无论是在我的控制器上还是在视图中,我都很难跟踪错误

我已经包括了我的代码的控制器、模型和视图。先谢谢你

竞选班

@Entity
@Table(name = "CAMPAIGN")
public class Campaign implements Serializable {

@Id
@Column(name = "ID")
private String campaignId;

@Column(name = "NAME", length = 50)
private String name;

@Column(name = "CLIENT_ID", length = 50)
private String clientId;

@DateTimeFormat(pattern = "yyyy-MM-dd")
@Column(name = "START_DATE")
private Date startDate;

@DateTimeFormat(pattern = "yyyy-MM-dd")
@Column(name = "END_DATE")
private Date endDate;

    @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "CAMPAIGN_KEYWORDS", joinColumns = {
        @JoinColumn(name = "CAMPAIGN_ID", referencedColumnName = "ID", nullable = false)},
        inverseJoinColumns = {@JoinColumn(name = "KEYWORD_ID", referencedColumnName = "VALUE", nullable = false)})
private List<KeyWord> keywords;
@实体
@表(name=“活动”)
公共类活动实现可序列化{
@身份证
@列(name=“ID”)
私有字符串ID;
@列(name=“name”,长度=50)
私有字符串名称;
@列(name=“CLIENT_ID”,长度=50)
私有字符串clientId;
@日期时间格式(pattern=“yyyy-MM-dd”)
@列(name=“开始日期”)
私人日期开始日期;
@日期时间格式(pattern=“yyyy-MM-dd”)
@列(name=“结束日期”)
私人日期结束日期;
@ManyToMany(fetch=FetchType.LAZY,cascade=CascadeType.ALL)
@JoinTable(name=“活动\关键字”,JointColumns={
@JoinColumn(name=“CAMPAIGN\u ID”,referencedColumnName=“ID”,nullable=false)},
inverseJoinColumns={@JoinColumn(name=“KEYWORD\u ID”,referencedColumnName=“VALUE”,nullable=false)})
私有列表关键词;
关键词类

@Entity
@Table(name = "KEYWORD")
public class KeyWord  implements Serializable {

@Id
@Column(name = "VALUE")
private String value;
@Column(name = "TYPE")
private String type;
@Column(name = "STATUS")
private String status;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "keywords")
private List<Campaign> Campaigns;
@实体
@表(name=“关键字”)
公共类关键字实现可序列化{
@身份证
@列(name=“VALUE”)
私有字符串值;
@列(name=“TYPE”)
私有字符串类型;
@列(name=“STATUS”)
私有字符串状态;
@ManyToMany(fetch=FetchType.LAZY,mappedBy=“keywords”)
私人名单运动;
控制器类

 @RequestMapping(value = "/edit", method = RequestMethod.GET)
    public String edit(Model model, @RequestParam(value = "id", required = false, defaultValue = "0") String id) {
        Campaign campaign;
        if(id.equalsIgnoreCase("0"))
        {
            campaign = new Campaign();
        }
        else{
            campaign = campaignDao.getCampaignById(id);
        }
        List<KeyWord> keyWordList = keyWordDoa.getAllKeywords();
        model.addAttribute("campaign", campaign);
        model.addAttribute("keyWordList", keyWordList);
        return campaignURL + "edit";
    }
@RequestMapping(value = "/edit", method = RequestMethod.POST)
    public String save(Model model, @ModelAttribute(value = "campaign") Campaign campaign, HttpServletRequest request) {

        if(campaign.getCampaignId() == null)
        {
            String id = GenerateID.getID();
            campaign.setCampaignId(id);
            campaign.setUrl(id);
        }
        campaignDao.addCampaign(campaign);


        return "redirect:/campaign";
    }
@RequestMapping(value=“/edit”,method=RequestMethod.GET)
公共字符串编辑(模型模型,@RequestParam(value=“id”,required=false,defaultValue=“0”)字符串id){
运动;
如果(id.equalsIgnoreCase(“0”))
{
活动=新活动();
}
否则{
campaign=campaignDao.getCampaignById(id);
}
List keyWordList=keyWordDoa.getAllKeywords();
model.addAttribute(“活动”,活动);
model.addAttribute(“关键字列表”,关键字列表);
返回活动URL+“编辑”;
}
@RequestMapping(value=“/edit”,method=RequestMethod.POST)
公共字符串保存(模型模型,@modeldattribute(value=“campaign”)活动,HttpServletRequest请求){
if(campaign.getcampaiid()==null)
{
字符串id=GenerateID.getID();
活动。设置活动id(id);
setUrl(id);
}
活动dao.addCampaign(活动);
返回“重定向:/campaign”;
}
胸腺视野

<form th:action="@{/campaign/edit}" method="post" th:object="${campaign}"
                                      enctype="multipart/form-data">
                                    <div class="form-group">
                                        <label class="form-label">Campaign ID</label>
                                        <div class="controls">
                                            <input type="text" disabled="disabled" class="form-control"
                                                   th:field="*{campaignId}">
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label class="form-label">Name</label>
                                        <span class="help">e.g. "Red Bull"</span>
                                        <div class="controls">
                                            <input type="text" class="form-control" th:field="*{name}"
                                                   placeholder="Red Bull">
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label class="form-label">User Group</label>
                                        <span class="help">Select The User group who has access</span>
                                        <div class="controls">
                                            <select class="multi" style="width:100%" th:field="*{clientId}">
                                                <option th:each="keyWord : ${keyWordList}"
                                                        th:value="${keyWord}" th:text="${keyWord.value}">Credit
                                                    card
                                                </option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="col-md-6">
                                        <div class="form-group">
                                            <label class="form-label">Start Date</label>
                                            <span class="help">"YYYY/MM/DD"</span>
                                            <div class="controls">
                                                <div class="input-append success date">
                                                    <input type="date" class="form-control" th:field="*{startDate}">
                                                    <span class="add-on"><span class="arrow"></span>
                                                        <i class="fa fa-th"></i></span>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="col-md-6">
                                        <div class="form-group">
                                            <label class="form-label">End Date</label>
                                            <span class="help">"YYYY/MM/DD"</span>
                                            <div class="controls">
                                                <div class="input-append success date">
                                                    <input type="date" class="form-control" th:field="*{endDate}">
                                                    <span class="add-on"><span class="arrow"></span>
                                                        <i class="fa fa-th"></i></span>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label class="form-label">Keywords</label>
                                        <span class="help">e.g. "Energy, Drink, RedBull"</span>
                                        <div class="controls">
                                            <select class="multi" style="width:100%" multiple th:field="*{keywords}" th:items>
                                                <option th:each="keyWord : ${keyWordList}"
                                                        th:value="${keyWord}" th:text="${keyWord.value}">Credit card
                                                </option>

                                            </select>
                                        </div>
                                    </div>


                                    <div class="col-md-6">
                                        <div class="form-group">
                                            <button class="btn  btn-default btn-cons" onclick="something()">Cancel
                                            </button>
                                        </div>
                                    </div>
                                    <div class="col-md-6">
                                        <div class="form-group">
                                            <button class="btn btn-success btn-cons" type="submit">Save</button>
                                        </div>
                                    </div>
                                </form>

活动ID
名称
e、 g.“红牛”
用户组
选择具有访问权限的用户组
信用
卡片
开始日期
“YYYY/MM/DD”
结束日期
“YYYY/MM/DD”
关键词
e、 g.“能量、饮料、红牛”
信用卡
取消
拯救