Apache Struts 2 Documentation > Home > Guides > Tag Developers Guide > Struts Tags > UI Tags > Themes and Templates > ajax theme > ajax head template
#editReport()

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.properties, 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:

<sx:head cache="true"/>
The above sample is from Struts trunk; for 2.0.6 you should use <s:head debug="true"/>.