你确定这真的是你需要做的吗?Struts2 为您提供开箱即用所需的所有工具,以实现几乎所有结果。
但是如果你真的想实现你的自定义动作映射器,那么看看Ian Roughley 的 Struts2 Web 2.0 项目的第 9 章,第 266 到 269 页;
ActionMapper 接口提供两种方法:一种将 URL 转换为动作映射,另一种将另一种方式从动作映射转换为 URL。
因此,您照常从 struts.xml 映射您的操作和结果类型,而不是在您的操作映射器中。
也看一下DefaultActionMapper 源代码......任何地方都没有结果类型,这不是管理它们的地方。
public ActionMapping getMapping(HttpServletRequest request,
ConfigurationManager configManager) {
ActionMapping mapping = new ActionMapping();
String uri = getUri(request);
int indexOfSemicolon = uri.indexOf(";");
uri = (indexOfSemicolon > -1) ? uri.substring(0, indexOfSemicolon) : uri;
uri = dropExtension(uri, mapping);
if (uri == null) {
return null;
}
parseNameAndNamespace(uri, mapping, configManager);
handleSpecialParameters(request, mapping);
if (mapping.getName() == null) {
return null;
}
parseActionName(mapping);
return mapping;
}