the objectiv is to be able to have url like ".../public/123.mp3" so this
customized ActionMapper was written.
public class MyActionMapper extends DefaultActionMapper {
static ActionMapper fallback = new DefaultActionMapper();
private static String getSongIdFromUrl(String s, String regex){
Matcher m = Pattern.compile(regex).matcher(s);
return m.find() ? m.group(1) : null;
}
@Override
public ActionMapping getMapping(HttpServletRequest request,
ConfigurationManager configManager) {
String uri = getUri(request);
String regex = "/public/(\\d+).mp3";
String id = getSongIdFromUrl(uri, regex);
if(id!=null){
ActionMapping m = new ActionMapping();
m.setExtension("");
m.setMethod("download");
m.setNamespace("/public");
m.setName("fileDownload");
Map params = new TreeMap();
params.put("id", id);
m.setParams(params);
return m;
}
return fallback.getMapping(request, configManager);
}
}
the problem is, that the id-Attribute altough correctly extracted from the
url dosn't become part of the parameter-list. The url
".../public/123.mp3?id=123" works by the way but is of course redundant. Why
doesn't
params.put("id", id);
m.setParams(params);
work?
--
View this message in context:
http://www.nabble.com/ActionMapper-doesn%27t-add-Parameter-tp21645204p21645204.html
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]