如何在自定义动作映射器中返回自定义全局结果。
public class MyCustomActionMapper implements ActionMapper {
public ActionMapping getMapping(HttpServletRequest request,
ConfigurationManager configManager) {
....
....
return ????
}
}
答案 0 :(得分:0)
ActionMapping getMapping(javax.servlet.http.HttpServletRequest请求, ConfigurationManager configManager)
Expose the ActionMapping for the current request
Parameters:
request - The servlet request
configManager - The current configuration manager
Returns:
The appropriate action mapping String or null if mapping cannot be determined
答案 1 :(得分:0)
你确定这真的是你需要做的吗? Struts2为您提供开箱即用所需的所有工具,以实现几乎所有结果。
但是如果你真的想要实现自定义动作映射器,那么请看一下Struts2 Web 2.0 Projects by Ian Roughley的第9章,第266页到第269页;
ActionMapper接口提供了两种方法:一种将URL转换为动作映射,另一种将另一种方式转换为动作映射到URL。
因此,您可以像往常一样在struts.xml中映射Actions和结果类型,而不是在Action Mapper中映射。
看看DefaultActionMapper source code也是......在任何地方没有结果类型,这不是他们管理的地方。
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;
}