You could use a dynamic parameters with a result
, see the dynamic result configuration.
In the action you should write a getter for the patrameter
private String actionUrl;
public String getActionUrl() {
return actionUrl;
}
and configure result
<action name="create" class="CreateAction">
<result type="redirect">${actionUrl}</result>
</action>
So, the common sense would be rewrite the code like
public class CreateAction extends ActionSupport
{
private String actionUrl;
public String getActionUrl() {
return actionUrl;
}
@Override
public String execute() throws Exception
{
String actionPath = "/view";
String createType = req.getParameter("createType");
String params = "&action=view";
if("1".equals(createType)){
params = params + "&from=list";
}else if("2".equals(createType)){
params = params + "&from=detail&someParam=someValue";
}//,etc..
actionUrl = actionPath+"?"+params;
return SUCCESS;
}
}
If you need a better way to create the urls from action mapping, you could look at this answer.