html5 theme
- Features
- Theme Configuration
- Using the HTML5 Theme
- Available Templates
- Text Field Template Example
- Since
The html5 theme extends the simple theme and provides modern HTML5 output.
Features
- Extends the simple theme via
theme.properties - Clean, modern HTML5 markup output
- Validation and error reporting
Theme Configuration
The HTML5 theme extends the simple theme via theme.properties:
#
# 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.
#
parent = simpleUsing the HTML5 Theme
Set the theme on individual tags:
<s:textfield name="username" theme="html5" />
Or set it for an entire form:
<s:form action="login" theme="html5">
<s:textfield name="username" />
<s:password name="password" />
<s:submit value="Login" />
</s:form>
Or globally in struts.xml:
<constant name="struts.ui.theme" value="html5" />
Available Templates
The HTML5 theme includes templates for all standard Struts UI tags including: textfield, textarea, password, checkbox, checkboxlist, radio, select, file, hidden, label, combobox, reset, submit, form, and more.
Text Field Template Example
<#--
/*
* 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.
*/
-->
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlheader.ftl" /><#rt/>
<input<#rt/>
type="${(attributes.type!"text")}"<#rt/>
name="${(attributes.name!"")}"<#rt/>
<#if attributes.get("size")?has_content>
size="${attributes.get("size")}"<#rt/>
</#if>
<#if attributes.maxlength?has_content>
maxlength="${attributes.maxlength}"<#rt/>
</#if>
<#if attributes.nameValue??>
value="${attributes.nameValue}"<#rt/>
</#if>
<#if attributes.disabled!false>
disabled="disabled"<#rt/>
</#if>
<#if attributes.readonly!false>
readonly="readonly"<#rt/>
</#if>
<#if attributes.tabindex?has_content>
tabindex="${attributes.tabindex}"<#rt/>
</#if>
<#if attributes.id?has_content>
id="${attributes.id}"<#rt/>
</#if>
<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl" />
<#if attributes.title?has_content>
title="${attributes.title}"<#rt/>
</#if>
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" /><#rt/>
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" /><#rt/>
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" /><#rt/>
/><#rt/>
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlfooter.ftl" /><#rt/>Since
Available since Struts 7.2.0