이 문제의 해결책은 내 새 필드를 logwork.jsp에 추가하는 것이 었습니다. 텍스트 필드 및 드롭 다운 코드입니다.
<page:applyDecorator name="auifieldgroup">
<aui:textfield id="'numberOfDefects'" label="text('Number Of Defects')" mandatory="'false'" name="'numberOfDefects'" size="'short'" theme="'aui'" /><br>
</page:applyDecorator>
<page:applyDecorator name="auifieldgroup">
<label for="select-example">Development Phase</label>
<select class="select" id="developmentPhase" name="developmentPhase">
<option>testing</option>
<option>configuration</option>
<option>development</option>
</select>
</page:applyDecorator>
는 그럼 골드 피처 의해 제공된 서브릿 필터 플러그인 모듈을 사용하고, 상기 필터는 패턴 /secure/CreateWorklog.jspa 일치하는 URL에 적용하도록 구성 하였다. 이것은 atlassian-plugin.xml에 있습니다.
<servlet-filter name="Create Worklog Servlet Filter" i18n-name-key="create-worklog-servlet-filter.name" key="create-worklog-servlet-filter" class="com.pelletier.jira.servlet.filter.CreateWorklogServletFilter" location="before-dispatch" weight="200">
<description key="create-worklog-servlet-filter.description">The Create Worklog Servlet Filter Plugin</description>
<url-pattern>/secure/CreateWorklog.jspa</url-pattern>
<dispatcher>REQUEST</dispatcher>
</servlet-filter>
내 Servlet-Filter 클래스에서 요청으로부터 새 매개 변수를 가져와 내 데이터베이스에 쓸 수있었습니다. (아니 락스 하나, 불행하게도, 나는 그 눈살을 찌푸리게되는 소리),
public class CreateWorklogServletFilter implements Filter {
private JdbcTemplate jdbcTemplate = null;
//OSGi injects the JdbcTemplate
public CreateWorklogServletFilter(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, response);
//do stuff with new params from modified jsp
}
@Override
public void destroy() {
}
나는 봄과 잘 알고, 그래서 나는 내 플러그인의 META-INF/봄/디렉토리에 spring.xml 파일을 넣고 jar는 내 DataSource에 필요하고 데이터베이스 드라이버는 META-INF/lib 디렉토리에 있어야합니다. spring.xml에 구성된 JdbcTemplate은 OSGi 번들에 놓이게된다. (나는 생각한다.) 그런 다음 이것을 내 ServletFilter 구현의 생성자에 삽입한다.