2016-12-06 8 views
0

jira 플러그인을 만들고 있는데 현재 웹 워크 모듈이 있습니다.jira plugin webwork 모듈에서 테이블 내용을 동적으로 표시하는 방법은 무엇입니까?

public class ReportWebworkAction extends JiraWebActionSupport { 

    private ArrayList<String> dataList = new ArrayList<String>(); 
    private String temp; 

    //setters and getters for all varaibles 

    @Override 
    public String doDefault() throws Exception { 
     //1) make http request 
     //2) parse json data 
     //3) display list of data in html table using velocity.vm 

      return super.doDefault(); 
    } 
} 

오른쪽 지금은 성공적으로 HTTP 요청을하고 자바 객체의리스트로 데이터를 분석 할 수 있어요 : 나는 WebWork와를 대표하는 다음과 같은 클래스가 있습니다. 속도 페이지에서 그 목록을 어떻게 볼 수 있으며 각 항목에 대해 데이터를 표시 할 요소를 만듭니다.

#foreach($item in $dataList) { 
    <tr> 
      <td>$item.key</td> 
      <td>$item.name</td> 
      <td>$item.value</td> 
    </tr> 
} 
#end 

내 속도 페이지 내 ReportWebworkAction 클래스의 ArrayList를 변수 인 $ 데이터 목록 항목을 인식 할 수없는 것 :

이것은 내가하고 싶은 것입니다. 그러나 문자열 변수 temp에 액세스 할 수 있습니다.

콘텐츠 공급자와 getContextMap() 메서드를 사용해야한다는 것을 알았지 만,이를 별도의 클래스에서 사용하는 방법을 혼란스럽게 생각합니다. 누군가 나에게 올바른 방법을 보여줄 수 있습니까? 감사.

답변

0

WebWork 클래스에 getter : getDataList()를 사용하여 속도 템플릿에서 액세스 할 수 있습니다. WebWork 클래스 멤버는 접근 자 (getter)를 통해 전송됩니다.

그렇습니다. getContextMap()도 해결책이지만 객체를 수동으로 컨텍스트에 넣는 것은 지루합니다. WebWork는 올바르게 명명 된 접근자를 사용하여 자동으로 수행합니다.

+0

@Bazl은 webwork 모듈로서 컨텍스트에 객체를 넣을 수있는 유일한 모듈입니다. 거기에 할 수있는 다른 플러그인 모듈이 있습니까? 어떤 플러그인 모듈에서 getContextMap()을 사용해야합니까? – simhuang

+0

흠, 나는 이런 식으로 작동하는 다른 모듈을 모른다. 내가 아는 한도 내에서 사용자 정의 필드를 구현할 때 템플릿에 객체를 전달해야 할 때 getVelocityParameters (Map context)를 구현 한 다음 객체를이 매개 변수 맵에 배치해야합니다. 나는 다른 어떤 모듈도 모르고있다. – Bazyl