org.apache.struts2.components
public class: Submit [javadoc |
source]
java.lang.Object
org.apache.struts2.components.Component
org.apache.struts2.components.UIBean
org.apache.struts2.components.FormButton
org.apache.struts2.components.Submit
All Implemented Interfaces:
RemoteUICallBean
Render a submit button. The submit tag is used together with the form tag to provide asynchronous form submissions.
The submit can have three different types of rendering:
- input: renders as html <input type="submit"...>
- image: renders as html <input type="image"...>
- button: renders as html <button type="submit"...>
Please note that the button type has advantages by adding the possibility to seperate the submitted value from the
text shown on the button face, but has issues with Microsoft Internet Explorer at least up to 6.0
Examples
<s:submit value="%{'Submit the form'}" />
Render an image submit:
<s:submit type="image" value="%{'Submit the form'}" src="submit.gif"/>
Render an button submit:
<s:submit type="button" value="%{'Submit the form'}"/>
THE FOLLOWING IS ONLY VALID WHEN AJAX IS CONFIGURED
- href
- errorText
- listenTopics
- notifyTopics
- executeScripts
- loadingText
- listenTopics
- handler
- formId
- formFilter
- targets
- showErrorTransportText
- targets
- indicator
'resultDivId' Deprecated. Use targets.
'targets' is a list of element ids whose content will be updated with the
text returned from request.
'errorText' is the text that will be displayed when there is an error making the request.
'onLoadJS' Deprecated. Use 'notifyTopics'.
'preInvokeJS' Deprecated. Use 'notifyTopics'.
'executeScripts' if set to true will execute javascript sections in the returned text.
'loadingText' is the text that will be displayed on the 'targets' elements while making the
request.
'handler' is the name of the function that will take care of making the AJAX request. Dojo's widget
and dom node are passed as parameters).
'formId' is the id of the html form whose fields will be seralized and passed as parameters
in the request.
'formFilter' is the name of a function which will be used to filter the fields that will be
seralized. This function takes as a parameter the element and returns true if the element
should be included.
'listenTopics' comma separated list of topics names, that will trigger a request
'indicator' element to be shown while the request executing
'showErrorTransportText': whether errors should be displayed (on 'targets')
'showLoadingText' show loading text on targets
'notifyTopics' comma separated list of topics names, that will be published. Three parameters are passed:
- data: html or json object when type='load' or type='error'
- type: 'before' before the request is made, 'load' when the request succeeds, or 'error' when it fails
- request: request javascript object, when type='load' or type='error'
Show the results in another div. If you want your results to be shown in
a div, use the resultDivId where the id is the id of the div you want them
shown in. This is an inner HTML approah. Your results get jammed into
the div for you. Here is a sample of this approach:
Remote form replacing another div:
<div id='two' style="border: 1px solid yellow;">Initial content</div>
<s:form
id='theForm2'
cssStyle="border: 1px solid green;"
action='/AjaxRemoteForm.action'
method='post'
theme="ajax">
<input type='text' name='data' value='Struts User' />
<s:submit value="GO2" theme="ajax" resultDivId="two" />
</s:form >
| Field Summary |
|---|
| public static final String | TEMPLATE | |
| protected String | href | |
| protected String | errorText | |
| protected String | executeScripts | |
| protected String | loadingText | |
| protected String | listenTopics | |
| protected String | handler | |
| protected String | formId | |
| protected String | formFilter | |
| protected String | src | |
| protected String | notifyTopics | |
| protected String | showErrorTransportText | |
| protected String | indicator | |
| protected String | showLoadingText | |
| protected String | beforeLoading | |
| protected String | afterLoading | |
| protected String | targets | |
| Fields inherited from org.apache.struts2.components.UIBean: |
|---|
| request, response, templateSuffix, template, templateDir, theme, key, cssClass, cssStyle, disabled, label, labelPosition, requiredposition, name, required, tabindex, value, title, onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onfocus, onblur, onkeypress, onkeydown, onkeyup, onselect, onchange, accesskey, tooltip, tooltipConfig, defaultTemplateDir, defaultUITheme, templateEngineManager |
| Method from org.apache.struts2.components.Submit Summary: |
|---|
|
end, evaluateExtraParams, evaluateParams, getDefaultTemplate, setAfterLoading, setBeforeLoading, setErrorText, setExecuteScripts, setFormFilter, setFormId, setHandler, setHref, setIndicator, setListenTopics, setLoadingText, setNotifyTopics, setShowErrorTransportText, setShowLoadingText, setSrc, setTargets, setTheme, supportsImageType |
| Methods from org.apache.struts2.components.UIBean: |
|---|
|
addFormParameter, buildTemplateName, enableAncestorFormCustomOnsubmit, end, ensureAttributeSafelyNotEscaped, escape, evaluateExtraParams, evaluateNameValue, evaluateParams, getDefaultTemplate, getTemplate, getTemplateDir, getTheme, getTooltipConfig, getValueClassType, mergeTemplate, populateComponentHtmlId, setAccesskey, setCssClass, setCssStyle, setDefaultTemplateDir, setDefaultUITheme, setDisabled, setKey, setLabel, setLabelposition, setName, setOnblur, setOnchange, setOnclick, setOndblclick, setOnfocus, setOnkeydown, setOnkeypress, setOnkeyup, setOnmousedown, setOnmousemove, setOnmouseout, setOnmouseover, setOnmouseup, setOnselect, setRequired, setRequiredposition, setTabindex, setTemplate, setTemplateDir, setTemplateEngineManager, setTheme, setTitle, setTooltip, setTooltipConfig, setValue |
| Methods from org.apache.struts2.components.Component: |
|---|
|
addAllParameters, addParameter, altSyntax, copyParams, determineActionURL, determineActionURL, determineNamespace, end, end, fieldError, findAncestor, findString, findString, findValue, findValue, findValue, getComponentStack, getId, getParameters, getStack, popComponentStack, setActionMapper, setId, start, toString, usesBody |
| Method from org.apache.struts2.components.Submit Detail: |
public boolean end(Writer writer,
String body) {
evaluateParams();
try {
addParameter("body", body);
mergeTemplate(writer, buildTemplateName(template, getDefaultTemplate()));
} catch (Exception e) {
LOG.error("error when rendering", e);
}
finally {
popComponentStack();
}
return false;
}
Overrides to be able to render body in a template rather than always before the template |
public void evaluateExtraParams() {
super.evaluateExtraParams();
if (href != null)
addParameter("href", findString(href));
if (errorText != null)
addParameter("errorText", findString(errorText));
if (loadingText != null)
addParameter("loadingText", findString(loadingText));
if (afterLoading != null)
addParameter("afterLoading", findString(afterLoading));
if (beforeLoading != null)
addParameter("beforeLoading", findString(beforeLoading));
if (executeScripts != null)
addParameter("executeScripts", findValue(executeScripts, Boolean.class));
if (listenTopics != null)
addParameter("listenTopics", findString(listenTopics));
if (notifyTopics != null)
addParameter("notifyTopics", findString(notifyTopics));
if (handler != null)
addParameter("handler", findString(handler));
if (formId != null)
addParameter("formId", findString(formId));
if (formFilter != null)
addParameter("formFilter", findString(formFilter));
if (src != null)
addParameter("src", findString(src));
if (indicator != null)
addParameter("indicator", findString(indicator));
if (targets != null)
addParameter("targets", findString(targets));
if (showLoadingText != null)
addParameter("showLoadingText", findString(showLoadingText));
}
|
public void evaluateParams() {
if ((key == null) && (value == null)) {
value = "Submit";
}
if (((key != null)) && (value == null)) {
this.value = "%{getText('"+key +"')}";
}
super.evaluateParams();
}
|
protected String getDefaultTemplate() {
return TEMPLATE;
}
|
public void setAfterLoading(String afterLoading) {
this.afterLoading = afterLoading;
}
|
public void setBeforeLoading(String beforeLoading) {
this.beforeLoading = beforeLoading;
}
|
public void setErrorText(String errorText) {
this.errorText = errorText;
}
|
public void setExecuteScripts(String executeScripts) {
this.executeScripts = executeScripts;
}
|
public void setFormFilter(String formFilter) {
this.formFilter = formFilter;
}
|
public void setFormId(String formId) {
this.formId = formId;
}
|
public void setHandler(String handler) {
this.handler = handler;
}
|
public void setHref(String href) {
this.href = href;
}
|
public void setIndicator(String indicator) {
this.indicator = indicator;
}
|
public void setListenTopics(String listenTopics) {
this.listenTopics = listenTopics;
}
|
public void setLoadingText(String loadingText) {
this.loadingText = loadingText;
}
|
public void setNotifyTopics(String notifyTopics) {
this.notifyTopics = notifyTopics;
}
|
public void setShowErrorTransportText(String showErrorTransportText) {
this.showErrorTransportText = showErrorTransportText;
}
|
public void setShowLoadingText(String showLoadingText) {
this.showLoadingText = showLoadingText;
}
|
public void setSrc(String src) {
this.src = src;
}
|
public void setTargets(String targets) {
this.targets = targets;
}
|
public void setTheme(String theme) {
super.setTheme(theme);
}
|
protected boolean supportsImageType() {
return true;
}
Indicate whether the concrete button supports the type "image". |