|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Include
Includes the result generated by any servlet, not limited to a ZUML page.
Non-XUL extension.
Since 3.6.2, there are three modes: auto, instant and defer (default).
The behavior prior to 3.6.2 is the same as the defer mode.
To be fully backward compatible, the default mode is defer
.
However, we recommend you change it by specifying a library variable named
org.zkoss.zul.include.mode
to be auto
,
since the auto mode is more intuitive and easier to handle.
In the instant mode, the page to be included are loaded 'instantly'
with Execution.createComponents(org.zkoss.zk.ui.metainfo.PageDefinition, org.zkoss.zk.ui.Component, java.util.Map)
when AfterCompose.afterCompose()
is called. Furthermore, the components are created as the child components
of this include component (like a macro component).
Notices:
setProgressing(boolean)
nor
setLocalized(boolean)
In the defer mode (the only mode supported by ZK prior to 3.6.2),
the page is included by servlet container (the include
method
of javax.servlet.RequestDispatcher
) in the render phase
(i.e., after all components are created). The page can be any
servlet; not limited to a ZUML page.
If it is eventually another ZUML page, a ZK page (Page
)
is created and added to the current desktop.
You can access them only via inter-page API (seePath
).
In the auto mode, the include component decides the mode based on
the name specified in the src property (setSrc(java.lang.String)
).
If src
is ended with the extension named .zul
or .zhtml
, the instant
mode is assumed.
Otherwise, the defer
mode is assumed.
Notice that invoking setProgressing(boolean)
or setLocalized(boolean)
with true will imply the defer
mode (if the mode is auto
).
There are two ways to pass parameters to the included page:
First, since ZK 3.0.4,
you can use DynamicPropertied.setDynamicProperty(java.lang.String, java.lang.Object)
, or, in ZUL,
<include src="/WEB-INF/mypage" arg="something"/>
Second, you can use the query string:
<include src="/WEB-INF/mypage?arg=something"/>
With the query string, you can pass only the String values.
and the parameter can be accessed by Execution.getParameter(java.lang.String)
or javax.servlet.ServletRequest's getParameter.
Or, you can access it with the param variable in EL expressions.
On the other hand, the dynamic properties (DynamicPropertied.setDynamicProperty(java.lang.String, java.lang.Object)
)
are passed to the included page thru the request's attributes
You can pass any type of objects you want.
In the included page, you can access them by use of
Execution.getAttribute(java.lang.String)
or javax.servlet.ServletRequest's
getAttribute. Or, you can access with the requestScope variable
in EL expressions.
Include
Include
(in defer mode) could include anything include ZUML,
JSP or any other
servlet, while a macro component could embed only a ZUML page.Include
(in defer mode) includes a ZUML page, a
Page
instance is created which is owned
by Include
. On the other hand, a macro component makes
the created components as the direct children -- i.e.,
you can browse them with Component.getChildren()
.Include
(in defer mode) creates components in the Rendering phase,
while a macro component creates components in HtmlMacroComponent.afterCompose()
.Component.invalidate()
(in defer mode) will cause it to re-include
the page (and then recreate the page if it includes a ZUML page).
However, AbstractComponent.invalidate()
just causes it to redraw
and update the content at the client -- like any other component does.
To re-create, you have to invoke HtmlMacroComponent.recreate()
.In additions to macro and
Default: false.
Default: false.
Default: null.
If src is changed, the whole component is invalidate. Thus, you want to
smart-update, you have to override this method.
Default: false;
It is recommended to use the auto mode if possible
The reason to have Default: defer.
Include
, you can use the fulfill
attribute as follows:
<div fulfill="=/my/foo.zul">...</div>
Iframe
Field Summary
Fields inherited from interface org.zkoss.zk.ui.Component
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
Method Summary
java.lang.String
getMode()
Returns the inclusion mode.
boolean
getProgressing()
Returns whether to show the MZul.PLEASE_WAIT
message before a
long operation.
java.lang.String
getSrc()
Returns the src.
boolean
isLocalized()
Returns whether the source depends on the current Locale.
void
setLocalized(boolean localized)
Sets whether the source depends on the current Locale.
void
setMode(java.lang.String mode)
Sets the inclusion mode.
void
setProgressing(boolean progressing)
Sets whether to show the MZul.PLEASE_WAIT
message before a long
operation.
void
setSrc(java.lang.String src)
Sets the src.
Methods inherited from interface org.zkoss.zul.impl.api.XulElement
getAction, getContext, getCtrlKeys, getPopup, getTooltip, setAction, setContext, setContext, setCtrlKeys, setPopup, setPopup, setTooltip, setTooltip
Methods inherited from interface org.zkoss.zk.ui.api.HtmlBasedComponent
focus, getHeight, getLeft, getSclass, getStyle, getTooltiptext, getTop, getWidth, getZclass, getZindex, getZIndex, setDraggable, setDroppable, setFocus, setHeight, setLeft, setSclass, setStyle, setTooltiptext, setTop, setWidth, setZclass, setZindex, setZIndex
Methods inherited from interface org.zkoss.zk.ui.ext.Scope
addScopeListener, getAttribute, hasAttribute, removeAttribute, removeScopeListener, setAttribute
Methods inherited from interface org.zkoss.zk.ui.ext.DynamicPropertied
getDynamicProperty, hasDynamicProperty, setDynamicProperty
Methods inherited from interface org.zkoss.zk.ui.ext.AfterCompose
afterCompose
Methods inherited from interface org.zkoss.zk.ui.IdSpace
getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, hasFellow, hasFellow
Method Detail
setProgressing
void setProgressing(boolean progressing)
MZul.PLEASE_WAIT
message before a long
operation. This implementation will automatically use an echo event like
Events.echoEvent(String, org.zkoss.zk.ui.Component, String)
to
suspend the including progress before using the
Clients.showBusy(String)
method to show the
MZul.PLEASE_WAIT
message at client side.
getProgressing
boolean getProgressing()
MZul.PLEASE_WAIT
message before a
long operation.
getSrc
java.lang.String getSrc()
setSrc
void setSrc(java.lang.String src)
src
- the source URI. If null or empty, nothing is included. You can
specify the source URI with the query string and they will
become a parameter that can be accessed by use of
Execution.getParameter(java.lang.String)
or
javax.servlet.ServletRequest's getParameter. For example, if
"/a.zul?b=c" is specified, you can access the parameter with
${param.b} in a.zul.DynamicPropertied.setDynamicProperty(java.lang.String, java.lang.Object)
isLocalized
boolean isLocalized()
setLocalized
void setLocalized(boolean localized)
getMode
java.lang.String getMode()
defer
as the default is to
be backward compatible.
setMode
void setMode(java.lang.String mode)
throws WrongValueException
mode
- the inclusion mode: auto, instant or defer.
WrongValueException
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD
DETAIL: FIELD | CONSTR | METHOD
Copyright © 2005-2009 Potix Corporation. All Rights Reserved.