Package org.apache.struts2.components
Class ActionComponent
java.lang.Object
org.apache.struts2.components.Component
org.apache.struts2.components.ContextBean
org.apache.struts2.components.ActionComponent
This tag enables developers to call actions directly from a JSP page by specifying the action name and an optional namespace. The body content of the tag is used to render the results from the Action. Any result processor defined for this action in struts.xml will be ignored, unless the executeResult parameter is specified.
- id (String) - the id (if specified) to put the action under stack's context.
- name* (String) - name of the action to be executed (without the extension suffix eg. .action)
- namespace (String) - default to the namespace where this action tag is invoked
- executeResult (Boolean) - default is false. Decides whether the result of this action is to be executed or not
- ignoreContextParams (Boolean) - default to false. Decides whether the request parameters are to be included when the action is invoked
public class ActionTagAction extends ActionSupport { public String execute() throws Exception { return "done"; } public String doDefault() throws Exception { ServletActionContext.getRequest().setAttribute("stringByAction", "This is a String put in by the action's doDefault()"); return "done"; } }
<xwork> .... <action name="actionTagAction1" class="tmjee.testing.ActionTagAction"> <result name="done">success.jsp</result> </action> <action name="actionTagAction2" class="tmjee.testing.ActionTagAction" method="default"> <result name="done">success.jsp</result> </action> .... </xwork>
The following action tag will execute result and include it in this page
<s:action name="actionTagAction" executeResult="true" />
The following action tag will do the same as above, but invokes method specialMethod in action
<s:action name="actionTagAction!specialMethod" executeResult="true" />
The following action tag will not execute result, but put a String in request scope under an id "stringByAction" which will be retrieved using property tag <s:action name="actionTagAction!default" executeResult="false" /> <s:property value="#attr.stringByAction" />
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ActionProxyFactory
protected boolean
protected boolean
protected boolean
protected String
protected String
protected ActionProxy
protected jakarta.servlet.http.HttpServletRequest
protected jakarta.servlet.http.HttpServletResponse
protected boolean
protected ValueStackFactory
Fields inherited from class org.apache.struts2.components.ContextBean
var
Fields inherited from class org.apache.struts2.components.Component
actionMapper, attributes, COMPONENT_STACK, devMode, escapeHtmlBody, performClearTagStateForTagPoolingServers, stack, standardAttributesMap, throwExceptionOnELFailure
-
Constructor Summary
ConstructorsConstructorDescriptionActionComponent
(ValueStack stack, jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse res) -
Method Summary
Modifier and TypeMethodDescriptionprotected HttpParameters
CreatesHttpParameters
using parameters from the value stack and component attributes.boolean
Callback for the end tag of this component.protected void
Execute the requested action.getProxy()
void
setActionProxyFactory
(ActionProxyFactory actionProxyFactory) void
setExecuteResult
(boolean executeResult) void
setFlush
(boolean flush) void
setIgnoreContextParams
(boolean ignoreContextParams) void
void
setNamespace
(String namespace) void
setRethrowException
(boolean rethrowException) void
setValueStackFactory
(ValueStackFactory valueStackFactory) Methods inherited from class org.apache.struts2.components.ContextBean
getVar, putInContext, setVar
Methods inherited from class org.apache.struts2.components.Component
addAllAttributes, addParameter, completeExpression, copyAttributes, determineActionURL, determineNamespace, end, escapeHtmlBody, fieldError, findAncestor, findString, findString, findValue, findValue, findValue, getAttributes, getComponentStack, getNamespace, getPerformClearTagStateForTagPoolingServers, getStack, getStandardAttributes, isAcceptableExpression, isValidTagAttribute, popComponentStack, setActionMapper, setDevMode, setEscapeHtmlBody, setNotExcludedAcceptedPatterns, setPerformClearTagStateForTagPoolingServers, setThrowExceptionsOnELFailure, setUrlHelper, start, stripExpression, toString, usesBody
-
Field Details
-
res
protected jakarta.servlet.http.HttpServletResponse res -
req
protected jakarta.servlet.http.HttpServletRequest req -
valueStackFactory
-
actionProxyFactory
-
proxy
-
name
-
namespace
-
executeResult
protected boolean executeResult -
ignoreContextParams
protected boolean ignoreContextParams -
flush
protected boolean flush -
rethrowException
protected boolean rethrowException
-
-
Constructor Details
-
ActionComponent
public ActionComponent(ValueStack stack, jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse res)
-
-
Method Details
-
setActionProxyFactory
- Parameters:
actionProxyFactory
- the actionProxyFactory to set
-
setValueStackFactory
-
end
Description copied from class:Component
Callback for the end tag of this component. Should the body be evaluated again?
NOTE: will pop component stack. -
createExtraContext
-
createParametersForContext
CreatesHttpParameters
using parameters from the value stack and component attributes. Any non-String array values will be converted into a single-value String array.- Returns:
- Instance of
HttpParameters
-
getProxy
-
executeAction
protected void executeAction()Execute the requested action. If no namespace is provided, we'll attempt to derive a namespace using buildNamespace(). The ActionProxy and the namespace will be saved into the instance variables proxy and namespace respectively. -
setName
-
setNamespace
-
setExecuteResult
public void setExecuteResult(boolean executeResult) -
setIgnoreContextParams
public void setIgnoreContextParams(boolean ignoreContextParams) -
setFlush
public void setFlush(boolean flush) -
setRethrowException
public void setRethrowException(boolean rethrowException)
-