Я создал форму:переплета ошибки со списком
<form:form action="${contextPath}/draw/constraints.do" method="post" modelAttribute="order"> <c:forEach items="${order.myDrawsAsArray}" var="draw" varStatus="status">
<label class="radio-inline"><form:radiobutton path="myDrawsAsArray[${status.index}].readable" value="true" /> yes</label>
<label class="radio-inline"><form:radiobutton path="myDrawsAsArray[${status.index}].readable" value="false" /> no</label>
</c:forEach></form:form>
Когда я представить его, чтобы обновить свои объекты, я получил следующее исключение:
org.springframework.web.util.NestedServletException: Запрос не выполнен; inest exception is org.springframework.beans.InvalidPropertyException: Недопустимое свойство 'myDrawsAsArray [0]' из bean-класса [com.entity.Order3d]: Getter для свойства 'myDrawsAsArray' генерирует исключение; вложенное исключение составляет java.lang.reflect.InvocationTargetException org.springframework.beans.InvalidPropertyException: Недопустимое свойство 'myDrawsAsArray [0]' из класса компонента [com.entity.Order3d]: Getter за собственность 'myDrawsAsArray' бросили исключение; вложенное исключение составляет java.lang.reflect.InvocationTargetException java.lang.reflect.InvocationTargetException java.lang.NullPointerException com.entity.Order3d.getMyDrawsAsArray (Order3d.java:121)
Мой контроллер подобен это:
@Controller
@RequestMapping("/draw")
public class PrintingController {
@RequestMapping(value="/constraints")
public String constraints(
@ModelAttribute Order3d order,
@RequestParam("order") int id,
@RequestParam(value="save", required=false) String save,
Model m) {
Session s=HibernateUtils.getSessionFactory().openSession();
if(save!=null) {
System.out.println(order.getMyDraws());
for(DrawFile df : order.getMyDraws())
s.saveOrUpdate(df);
}
Order3d o=(Order3d)s.createCriteria(Order3d.class).add(Restrictions.eq("id", id)).uniqueResult();
m.addAttribute("order", o);
s.close();
return "3dconstraints";
}
}
Я также разместить свои объекты, если вам нужны:
@Entity
@Table (name="order3d")
public class Order3d implements Serializable {
private static final long serialVersionUID = -2241346447352903470L;
public enum State {DEMAND, ESTIMATED, PAYED, PENDING, PRODUCED, SENT, DELIVERED};
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column (name="id")
private int id;
@OneToMany(mappedBy="order3d", fetch = FetchType.EAGER, cascade=CascadeType.ALL)
private Set<DrawFile> myDraws;
public Set<DrawFile> getMyDraws() {
return myDraws;
}
public List<DrawFile> getMyDrawsAsList() {
return new ArrayList<DrawFile>(myDraws);
}
public Object[] getMyDrawsAsArray() {
return myDraws.toArray(); //line 121
}
//other getters & setters
public Order3d() {}
}
@Entity
@Table (name="draw", [email protected](columnNames="hashname"))
public class DrawFile implements Serializable {
private static final long serialVersionUID = -9024754876558087847L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column (name="id")
private int id;
@Column (name="hashname", columnDefinition="CHAR(64)")
private String hashname;
@Column (name="filename")
private String filename="";
@Column (name="readable", columnDefinition = "BIT", length = 1)
private Boolean readable;
//getters & setters
public DrawFile() {}
}
Я искал в Интернете, но я не нашел решения. Есть идеи?
и не может читать Установить с помощью [index] – user1428716
Теперь я возвращаю список с открытым списком getMyDrawsAsList(); 'но я получил новое исключение:' org.springframework.web.util.NestedServletException: обработка запроса не удалась; Вложенное исключение - org.springframework.beans.InvalidPropertyException: Недопустимое свойство 'myDrawsAsList [0]' из класса bean [com.entity.Order3d]: Getter для свойства 'myDrawsAsList' выбрал исключение; inest exception is java.lang.reflect.InvocationTargetException ' –
Athanor
использовать Array [] – user1428716