diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml
index e2bfdf419..a1a0456b0 100644
--- a/apps/showcase/pom.xml
+++ b/apps/showcase/pom.xml
@@ -103,7 +103,7 @@
org.apache.struts
- struts2-codebehind-plugin
+ struts2-convention-plugin
${project.version}
diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/person/EditPersonAction.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/person/EditPersonAction.java
index 208f23a0a..83e03dc5b 100644
--- a/apps/showcase/src/main/java/org/apache/struts2/showcase/person/EditPersonAction.java
+++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/person/EditPersonAction.java
@@ -24,17 +24,20 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import org.apache.struts2.config.Result;
-import org.apache.struts2.config.Results;
-import org.apache.struts2.dispatcher.ServletRedirectResult;
+import org.apache.struts2.convention.annotation.ParentPackage;
+import org.apache.struts2.convention.annotation.Result;
import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts2.convention.annotation.Results;
/**
* EditPerson
*
*/
-@Result(name="list", value="listPeople.action", type=ServletRedirectResult.class)
+@Results({
+ @Result(name="list", location="list-people.action", type="redirect"),
+ @Result(name="input", location="new-person.ftl", type="freemarker")
+})
public class EditPersonAction extends ActionSupport {
private static final long serialVersionUID = 7699491775215130850L;
diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/person/ListPeopleAction.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/person/ListPeopleAction.java
index 4c3bd25c0..c77438c43 100644
--- a/apps/showcase/src/main/java/org/apache/struts2/showcase/person/ListPeopleAction.java
+++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/person/ListPeopleAction.java
@@ -23,11 +23,11 @@ package org.apache.struts2.showcase.person;
import java.util.ArrayList;
import java.util.List;
-import org.apache.struts2.config.Result;
-import org.apache.struts2.views.freemarker.FreemarkerResult;
-
import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts2.convention.annotation.ParentPackage;
+import org.apache.struts2.convention.annotation.Result;
+@Result(location="list-people.ftl", type="freemarker")
public class ListPeopleAction extends ActionSupport {
private static final long serialVersionUID = 3608017189783645371L;
diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/person/NewPersonAction.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/person/NewPersonAction.java
index b477c5a5e..fedb22d31 100644
--- a/apps/showcase/src/main/java/org/apache/struts2/showcase/person/NewPersonAction.java
+++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/person/NewPersonAction.java
@@ -20,16 +20,13 @@
*/
package org.apache.struts2.showcase.person;
-import org.apache.struts2.config.ParentPackage;
-import org.apache.struts2.config.Result;
-import org.apache.struts2.config.Results;
+import org.apache.struts2.convention.annotation.ParentPackage;
+import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.views.freemarker.FreemarkerResult;
import com.opensymphony.xwork2.ActionSupport;
-/**
- */
-@ParentPackage("person")
+@Result(name="input", location="new-person.ftl", type="freemarker")
public class NewPersonAction extends ActionSupport {
private static final long serialVersionUID = 200410824352645515L;
diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/person/package-info.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/person/package-info.java
new file mode 100644
index 000000000..6127e603b
--- /dev/null
+++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/person/package-info.java
@@ -0,0 +1,7 @@
+@ParentPackage("person")
+@Namespace("/person")
+package org.apache.struts2.showcase.person;
+
+import org.apache.struts2.convention.annotation.Namespace;
+import org.apache.struts2.convention.annotation.ParentPackage;
+
diff --git a/apps/showcase/src/main/resources/struts.xml b/apps/showcase/src/main/resources/struts.xml
index 6803ec212..77d46f27d 100644
--- a/apps/showcase/src/main/resources/struts.xml
+++ b/apps/showcase/src/main/resources/struts.xml
@@ -14,13 +14,13 @@
-
+
+
+
-
-
diff --git a/apps/showcase/src/main/webapp/WEB-INF/web.xml b/apps/showcase/src/main/webapp/WEB-INF/web.xml
index d446f9d95..62335a4af 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/web.xml
+++ b/apps/showcase/src/main/webapp/WEB-INF/web.xml
@@ -9,10 +9,6 @@
struts-prepare
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter
-
- actionPackages
- org.apache.struts2.showcase.person
-
diff --git a/apps/showcase/src/main/webapp/person/editPerson.jsp b/apps/showcase/src/main/webapp/person/edit-person.jsp
similarity index 81%
rename from apps/showcase/src/main/webapp/person/editPerson.jsp
rename to apps/showcase/src/main/webapp/person/edit-person.jsp
index 2cca278ae..1f0da2c57 100644
--- a/apps/showcase/src/main/webapp/person/editPerson.jsp
+++ b/apps/showcase/src/main/webapp/person/edit-person.jsp
@@ -6,7 +6,7 @@
-
+
@@ -33,8 +33,8 @@
diff --git a/apps/showcase/src/main/webapp/person/index.jsp b/apps/showcase/src/main/webapp/person/index.jsp
index 48afafe75..599023f9c 100644
--- a/apps/showcase/src/main/webapp/person/index.jsp
+++ b/apps/showcase/src/main/webapp/person/index.jsp
@@ -5,8 +5,8 @@