spring ThemeTag 源码
spring ThemeTag 代码
文件路径:/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/ThemeTag.java
/*
* Copyright 2002-2018 the original author or authors.
*
* Licensed 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
*
* https://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.
*/
package org.springframework.web.servlet.tags;
import org.springframework.context.MessageSource;
import org.springframework.context.NoSuchMessageException;
/**
* The {@code <theme>} tag looks up a theme message in the scope of this page.
* Messages are looked up using the ApplicationContext's ThemeSource,
* and thus should support internationalization.
*
* <p>Regards an HTML escaping setting, either on this tag instance,
* the page level, or the web.xml level.
*
* <p>If "code" isn't set or cannot be resolved, "text" will be used
* as default message.
*
* <p>Message arguments can be specified via the {@link #setArguments(Object)
* arguments} attribute or by using nested {@code <spring:argument>} tags.
*
* <table>
* <caption>Attribute Summary</caption>
* <thead>
* <tr>
* <th>Attribute</th>
* <th>Required?</th>
* <th>Runtime Expression?</th>
* <th>Description</th>
* </tr>
* </thead>
* <tbody>
* <tr>
* <td>arguments</td>
* <td>false</td>
* <td>true</td>
* <td>Set optional message arguments for this tag, as a (comma-)delimited
* String (each String argument can contain JSP EL), an Object array (used as
* argument array), or a single Object (used as single argument).</td>
* </tr>
* <tr>
* <td>argumentSeparator</td>
* <td>false</td>
* <td>true</td>
* <td>The separator character to be used for splitting the arguments string
* value; defaults to a 'comma' (',').</td>
* </tr>
* <tr>
* <td>code</td>
* <td>false</td>
* <td>true</td>
* <td>The code (key) to use when looking up the message. If code is not
* provided, the text attribute will be used.</td>
* </tr>
* <tr>
* <td>htmlEscape</td>
* <td>false</td>
* <td>true</td>
* <td>Set HTML escaping for this tag, as boolean value. Overrides the default
* HTML escaping setting for the current page.</td>
* </tr>
* <tr>
* <td>javaScriptEscape</td>
* <td>false</td>
* <td>true</td>
* <td>Set JavaScript escaping for this tag, as boolean value.
* Default is {@code false}.</td>
* </tr>
* <tr>
* <td>message</td>
* <td>false</td>
* <td>true</td>
* <td>A MessageSourceResolvable argument (direct or through JSP EL).</td>
* </tr>
* <tr>
* <td>scope</td>
* <td>false</td>
* <td>true</td>
* <td>The scope to use when exporting the result to a variable. This attribute
* is only used when var is also set. Possible values are page, request, session
* and application.</td>
* </tr>
* <tr>
* <td>text</td>
* <td>false</td>
* <td>true</td>
* <td>Default text to output when a message for the given code could not be
* found. If both text and code are not set, the tag will output null.</td>
* </tr>
* <tr>
* <td>var</td>
* <td>false</td>
* <td>true</td>
* <td>The string to use when binding the result to the page, request, session
* or application scope. If not specified, the result gets outputted to the
* writer (i.e. typically directly to the JSP).</td>
* </tr>
* </tbody>
* </table>
*
* @author Jean-Pierre Pawlak
* @author Juergen Hoeller
* @see org.springframework.ui.context.Theme
* @see org.springframework.ui.context.ThemeSource
* @see #setCode
* @see #setText
* @see #setHtmlEscape
* @see HtmlEscapeTag#setDefaultHtmlEscape
* @see org.springframework.web.util.WebUtils#HTML_ESCAPE_CONTEXT_PARAM
* @see ArgumentTag
*/
@SuppressWarnings("serial")
public class ThemeTag extends MessageTag {
/**
* Use the theme MessageSource for theme message resolution.
*/
@Override
protected MessageSource getMessageSource() {
return getRequestContext().getTheme().getMessageSource();
}
/**
* Return exception message that indicates the current theme.
*/
@Override
protected String getNoSuchMessageExceptionDescription(NoSuchMessageException ex) {
return "Theme '" + getRequestContext().getTheme().getName() + "': " + ex.getMessage();
}
}
相关信息
相关文章
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦