jira插件开发——创建一个webwork模块(10)

时间:2024-03-03 11:17:57

step1:编辑atlassian-plugin.xml文件:

<webwork1 key="admin-testwebwork1" name="Quick Create User Issue" i18n-name-key="admin-testwebwork1.name">
  <actions>
    <action name="com.atlassian.plugins.tutorial.action.TestAction1" alias="test1">
      <view name="test">/template/test1.vm</view>
    </action>
  </actions>
</webwork1>

action:类似控制中心,用来执行动作的验证,判断,跳转等操作。

alias:别名,执行动作的名称。

<view name>name属性:与控制类的跳转控制相对应。

step2:在action属性name对应的包目录下创建TestAction1.java,必须继承JiraWebActionSupport类,这里我们重写他的三个方法,如下:

public class TestAction1 extends JiraWebActionSupport {
  private String name;
  private int age;
  private String email;
  /**
  *
  */
  private static final long serialVersionUID = 1L;
  @Override
  public String doDefault() throws Exception {
  // TODO Auto-generated method stub
  return super.doDefault();
  }

  @Override
  protected String doExecute() throws Exception {
  // TODO Auto-generated method stub
  this.setName("吴亦凡");
  return "test";
  }

  @Override
  protected void doValidation() {
  // TODO Auto-generated method stub
  super.doValidation();
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }
}

step3:在template目录下编辑文件test1.vm文件:

<html>
<head>
<title>MyServlet Admin</title>
</head>
<body>
<form id="admin" class="aui">
<div class="field-group">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" class="text" value="$name">
</div>
<div class="field-group">
<label for="age">年龄:</label>
<input type="text" id="age" name="age" class="text">
</div>
<div class="field-group">
<input type="submit" value="保存" class="button">
</div>
</form>
</body>
</html>

用"$"+控制类中的属性来取值,实现前后端交互。

step4:打包上传,看效果。浏览器访问:http://localhost:2990/jira/secure/test1.jspa;

test1.jspa默认去调用控制类的doExecute方法!如果要去调用自己写的方法doCreate(),可以用别名+方法名的方式来访问,比如test1!Create.jspa;!表示do,action类中命名需要符合标准