首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

批改Issue默认经办人为报告人

2013-08-09 
修改Issue默认经办人为报告人?在创建一个Issue的时候,如果不指定经办人,经办人会默认为项目的负责人,如果

修改Issue默认经办人为报告人
?在创建一个Issue的时候,如果不指定经办人,经办人会默认为项目的负责人,如果希望经办人默认为Issue创建时的报告人或者当前登录用户,那该怎么办,因为很少有人会主动在创建issue的时候在经办人那点击分配给我或者分配给真正正确的人,这样我们不得不做一些额外的操作去实现这一要求,最开始的思路是通过监控器监听issue创建事件,然后捕获到该事件之后立即修改该issue的经办人属性,但是事件执行完之后,经办人又被创建时的值覆盖了,接着又试着让修改issue经办人的代码线程休眠几秒后再做执行,依然没有成功。失望之余,我想到了拦截器,jira插件开发书中倒是提到过servlet filter,于是通过代码试验,终于用filter方式实现了修改默认经办人的功能首先需要在atlassian-plugin.xml文件中配置一个filter

?通过Firefox的firebug工具捕获到了/secure/QuickCreateIssue.jspa*的请求
批改Issue默认经办人为报告人
?在创建issue的时候如果没有设置经办人,那么经办人的值为-1,当然在issue的创建的后台会被置成项目的负责人,所以思路有了,就是要在过滤器这里修改掉assignee的值
public class ParameterRequestWrapper extends HttpServletRequestWrapper {    private Map params;    public ParameterRequestWrapper(HttpServletRequest request, Map newParams) {        super(request);        this.params = newParams;    }    public Map getParameterMap() {        return params;    }    public Enumeration getParameterNames() {        Vector v = new Vector(params.keySet());        return v.elements();    }    public String[] getParameterValues(String name) {        Object v = params.get(name);        if (v == null) {            return null;        } else if (v instanceof String[]) {            return (String[]) v;        } else if (v instanceof String) {            return new String[]{(String) v};        } else {            return new String[]{v.toString()};        }    }    public String getParameter(String name) {        Object v = params.get(name);        if (v == null) {            return null;        } else if (v instanceof String[]) {            String[] strArr = (String[]) v;            if (strArr.length > 0) {                return strArr[0];            } else {                return null;            }        } else if (v instanceof String) {            return (String) v;        } else {            return v.toString();        }    }}
?

热点排行