gpt4 book ai didi

java - 如何使用 Struts2 ModelDriven 将数据放入对象内的列表中

转载 作者:太空宇宙 更新时间:2023-11-04 12:24:30 26 4
gpt4 key购买 nike

我正在做我的实践项目并遇到一个问题。如何使用 ModelDriven 将在 jsp 中输入的数据封装到对象内部的集合中。这是示例代码。

我已经调试了我的程序,它显示空值。我知道问题出在jsp内部,但我不知道如何解决。

订单:

public class Order {
private int id;
private Date createDate;
private Date requestDate;
private double totalCost;
private String status;
private Vehicle vehicle; //contains car info

private Set<Part> parts = new HashSet<>();
//setters and getters
}

部分:

public class Part {
private int id;
private int quality;
private double laborCost;
private int status;

//setters and getters
}

我的操作代码:

public class OrderAction extends ActionSupport implements ModelDriven<Order>{

private Order order = new Order();
public Order getOrder() {return order;}
public void setOrder(Order order) {this.order = order;}

@Override
public Order getModel() { return order;}

public String addOrder(){
try{
orderSerive.addOrder(order);
}catch (Exception e){
return LOGIN;
}
return "home";
}

我的jsp页面示例:

<div class="form-group" id="part1">
<s:label value="1" cssClass="col-md-1 col-sm-1 col-xs-4 col-md-offset 1"/>
<div class="col-md-6 col-sm-6 col-xs-12">
<s:textfield cssClass="form-control" id="partModel"/>
</div>
<div class="col-md-2 col-sm-2 col-xs-4 col-md-offset-1">
<s:textfield name="parts[1].quality" cssClass="form-control"/>
</div>
</div>

最佳答案

您的代码适合列表,您可以使用 [n] 进行索引,因为列表已索引:

<s:textfield name="parts[1].quality" cssClass="form-control"/>

它不适用于 Set,因为 Set 没有索引。

您可以通过 Set 的属性之一为 Set 建立索引(在本例中为 id),如下所示:

  1. 使用 KeyProperty_parts=id 格式在文件 OrderAction-conversion.properties(位于操作的同一文件夹中)中指定属性。
    注意:由于 parts 不是操作的集合,而是操作的对象,因此可能需要进行一些调整。

  2. 使用(n)习语:

     <s:textfield name="parts(1).quality" cssClass="form-control"/>
  3. 覆盖hashCode()equals()

阅读 the official documentation 上的所有扭曲故事.

关于java - 如何使用 Struts2 ModelDriven 将数据放入对象内的列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38515525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com