動態調用action方法,是指用 action!method 格式的請求來請求後臺的邏輯處理
前提條件:在struts.xml或者struts.properties中配置
struts.enable.DynamicMethodInvocation常量爲true ,否則動態調用不可用
查看源碼: 在org.apache.struts2.dispatcher.mapper.DefaultActionMapper中
protected ActionMapping parseActionName(ActionMapping mapping) { if(mapping.getName() == null) return null; //該參數即struts.enable.DynamicMethodInvocation常量的值, //因此設爲true,纔可以用動態調用請求action if(allowDynamicMethodCalls) { String name = mapping.getName(); int exclamation = name.lastIndexOf("!"); if(exclamation != -1) { mapping.setName(name.substring(0, exclamation)); mapping.setMethod(name.substring(exclamation + 1)); } } return mapping; }
注意:通配符格式的action請求與參數struts.enable.DynamicMethodInvocation的值無關