ajax head template
The ajax head template builds upon the xhtml head template by providing additional
JavaScript includes for the Dojo Toolkit, which is used by the ajax a template,
ajax div template, and the ajax tabbedPanel template. It is required to use this tag,
<ww:head theme="ajax"/>
, in your HTML <head>
block if you wish to use AJAX feature. The contents of head.ftl are:
<#--
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
-->
<script language="JavaScript" type="text/javascript">
// Dojo configuration
djConfig = {
isDebug: ${parameters.debug?default(false)?string},
bindEncoding: "${parameters.encoding}"
<#if parameters.baseRelativePath?if_exists != "">
,baseRelativePath: "<@s.url value='${parameters.baseRelativePath}' includeParams='none' encode='false' />"
,baseScriptUri: "<@s.url value='${parameters.baseRelativePath}' includeParams='none' encode='false' />"
<#else>
,baseRelativePath: "${base}/struts/dojo/"
,baseScriptUri: "${base}/struts/dojo/"
</#if>
<#if parameters.locale?if_exists != "">
,locale: "${parameters.locale}"
</#if>
<#if parameters.extraLocales?exists>
,extraLocale: [
<#list parameters.extraLocales as locale>
"${locale}"<#if locale_has_next>,</#if>
</#list>
]
</#if>
,parseWidgets : ${parameters.parseContent?string}
};
</script>
<#if parameters.compressed?default(true)>
<#assign dojoFile="dojo.js">
<#else>
<#assign dojoFile="dojo.js.uncompressed.js">
</#if>
<#if parameters.cache?default(true)>
<#assign profile="struts_">
<#else>
<#assign profile="">
</#if>
<#if parameters.baseRelativePath?if_exists != "">
<script language="JavaScript" type="text/javascript"
src="<@s.url value='${parameters.baseRelativePath}/${profile}${dojoFile}' includeParams='none' encode='false' />"></script>
<#else>
<script language="JavaScript" type="text/javascript"
src="${base}/struts/dojo/${profile}${dojoFile}"></script>
</#if>
<script language="JavaScript" type="text/javascript"
src="${base}/struts/ajax/dojoRequire.js"></script>
<#if parameters.debug?default(false)>
<script language="JavaScript" type="text/javascript">
dojo.hostenv.writeIncludes(true);
</script>
</#if>
<link rel="stylesheet" href="${base}/struts/xhtml/styles.css" type="text/css"/>
<script language="JavaScript" src="${base}/struts/utils.js" type="text/javascript"></script>
<script language="JavaScript" src="${base}/struts/xhtml/validation.js" type="text/javascript"></script>
<script language="JavaScript" src="${base}/struts/css_xhtml/validation.js" type="text/javascript"></script>
If you are having trouble getting the AJAX theme to work, you should include the above JavaScript in your page manually, changing “isDebug: false” to “isDebug: true”. This will log out debugging information directly to the screen.
Note that Dojo is configured to use the same character encoding specified in struts.xml
, typically UTF-8. For a simple
example of how to use the head tag with the AJAX theme, simply do the following in your HTML:
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<!--// START SNIPPET: common-include-->
<sx:head cache="false"/>
<!--// END SNIPPET: common-include-->
The above sample is from Struts trunk; for 2.0.6 you should use
<s:head debug="true"/>
.