Struts에서 멀티 로우 업데이트를 수행하는 좋은 방법은 무엇입니까 (Struts가 라이브로)?

StackOverflow https://stackoverflow.com/questions/792404

  •  16-09-2019
  •  | 
  •  

문제

Dynaform을 사용하지 않고 Kin입니다.

POJO 데이터 전송 객체 (예 : 사람)를 사용하고 싶습니다.

public class Person {
   private Long id;
   private String firstName;
   private String lastName;
   // ... getters / setters for the fields
}

Struts 라이브 액션 양식에서 우리는 다음과 같습니다.

public class PersonUpdateForm extends SLActionForm {
   String organization;
   Person[] persons; // all the people will be changed to this organization; they're names and so forth can be updated at the same time (stupid, but a client might desire this)

   // getters / setters + index setters / getters for persons

}

해당 HTML : 텍스트 태그는 JSP에서 어떻게 보일까요? List Persons 필드로 전환하고 게으른로드 목록 (공통점 수집)을 사용하는 경우 어떻게 변경 될까요?

Struts-1.2 (.9?)에서 이것을하는 좋은 방법이없는 것 같습니다.

모든 도움이 크게 감사합니다 !!! 더 많은 상황이 필요한 경우 알려 주시면 일부를 제공 할 수 있습니다.

도움이 되었습니까?

해결책

좋아, 나는 그것을 알아 냈다고 믿는다! 비결은 인덱스가있는 getter가 getpersons () 메소드가 eUtils의 추구 메소드에 의해 호출 될 때마다 요소를 만들도록하는 것입니다. 코드는 아직 완료되었지만 긍정적 인 결과를 얻었습니다. 3시 30 분이고 나는 이것에 갇혀 있었다. 아무도 그 대답을 아는 것 같지 않아서 송어로 머리에 그들을 때리고 싶어합니다. 내 자신의 무지에 관해서는 ... 나는 그들을 비난 할 뿐이다!

public List<Person> getPersons() {
   persons.add(new Person()); // BeanUtils needs to know the list is large enough
   return persons;
}

물론 인덱스 된 게터와 세터도 추가하십시오.

내가 실제로 어떻게했는지 기억합니다. 위의 사람 목록을 이전 할 최대 크기로 사전 시작해야합니다. 이는 목록이 먼저 배열로 변환되기 때문에 배열의 각 요소에 속성을 설정하고 마지막으로 목록이 SetPersons (...)를 사용하여 다시 설정하기 때문입니다. 따라서 게으른로드 목록 구현 또는 유사한 접근 방식 (위의 쇼와 같은)을 사용하면 Struts Live에서 작동하지 않습니다. 더 자세히해야 할 일은 다음과 같습니다.

private List<Person> persons = new ArrayList<Person>(MAX_PEOPLE);
public MyConstructor() { for(int i = 0; i < MAX_PEOPLE; i++) persons.add(new Person()); }

public List<Person> getPeopleSubmitted() {
    List<Person> copy = new ArrayList<Person>();
    for(Person p : persons) {
        if(p.getId() != null) copy.add(p); 
        // id will be set for the submitted elements;
        // the others will have a null id
    }
    return copy; // only the submitted persons returned - not the blank templates
}

그것은 기본적으로 당신이해야 할 일입니다! 그러나 진짜 질문은 - 누가 더 이상 살고 있는가?!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top