java.lang.Object
org.springframework.web.util.WebUtils
org.miaixz.bus.spring.ContextBuilder
public class ContextBuilder
extends org.springframework.web.util.WebUtils
HTTP 请求、SpEL 表达式、用户信息等的便捷操作
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields inherited from class org.springframework.web.util.WebUtils
CONTENT_TYPE_CHARSET_PREFIX, DEFAULT_CHARACTER_ENCODING, DEFAULT_WEB_APP_ROOT_KEY, ERROR_EXCEPTION_ATTRIBUTE, ERROR_EXCEPTION_TYPE_ATTRIBUTE, ERROR_MESSAGE_ATTRIBUTE, ERROR_REQUEST_URI_ATTRIBUTE, ERROR_SERVLET_NAME_ATTRIBUTE, ERROR_STATUS_CODE_ATTRIBUTE, FORWARD_CONTEXT_PATH_ATTRIBUTE, FORWARD_PATH_INFO_ATTRIBUTE, FORWARD_QUERY_STRING_ATTRIBUTE, FORWARD_REQUEST_URI_ATTRIBUTE, FORWARD_SERVLET_PATH_ATTRIBUTE, HTML_ESCAPE_CONTEXT_PARAM, INCLUDE_CONTEXT_PATH_ATTRIBUTE, INCLUDE_PATH_INFO_ATTRIBUTE, INCLUDE_QUERY_STRING_ATTRIBUTE, INCLUDE_REQUEST_URI_ATTRIBUTE, INCLUDE_SERVLET_PATH_ATTRIBUTE, RESPONSE_ENCODED_HTML_ESCAPE_CONTEXT_PARAM, SESSION_MUTEX_ATTRIBUTE, SUBMIT_IMAGE_SUFFIXES, TEMP_DIR_CONTEXT_ATTRIBUTE, WEB_APP_ROOT_KEY_PARAM -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleangetConditionValue(Object root, String expressionString) 根据 SpEL 表达式进行条件求值 如果值为 null 则返回 false;如果为 Boolean 类型则直接返回;如果为 Number 类型则判断是否大于 0static booleangetConditionValue(Object root, String... expressionStrings) 根据多个 SpEL 表达式进行条件求值,所有表达式结果需为 true 才返回 truestatic org.miaixz.bus.core.basic.entity.Authorize获取当前用户信息static org.springframework.expression.ExpressiongetExpression(String expressionString) 获取 SpEL 表达式对象static <T> TgetExpressionValue(Object root, String expressionString) 根据 SpEL 表达式从根对象中获取值(无类型指定)static <T> T[]getExpressionValue(Object root, String... expressionStrings) 根据多个 SpEL 表达式从根对象中获取值数组static <T> TgetExpressionValue(Object root, String expressionString, Class<? extends T> clazz) 根据 SpEL 表达式从根对象中获取指定类型的值getHeaders(jakarta.servlet.http.HttpServletRequest request) 获取 HTTP 请求的所有 HeadergetParameters(jakarta.servlet.http.HttpServletRequest request) 获取 HTTP 请求的所有参数static jakarta.servlet.http.HttpServletRequest获取当前 HTTP 请求的 HttpServletRequest 对象static String获取当前会话的 Session IDstatic String获取租户 ID,依次从以下来源尝试获取: 1.Methods inherited from class org.springframework.web.util.WebUtils
clearErrorRequestAttributes, exposeErrorRequestAttributes, findParameterValue, findParameterValue, getCookie, getDefaultHtmlEscape, getNativeRequest, getNativeResponse, getParametersStartingWith, getRealPath, getRequiredSessionAttribute, getResponseEncodedHtmlEscape, getSessionAttribute, getSessionId, getSessionMutex, getTempDir, hasSubmitParameter, isIncludeRequest, isSameOrigin, isValidOrigin, parseMatrixVariables, removeWebAppRootSystemProperty, setSessionAttribute, setWebAppRootSystemProperty
-
Constructor Details
-
ContextBuilder
public ContextBuilder()
-
-
Method Details
-
getExpression
@Nullable public static org.springframework.expression.Expression getExpression(@Nullable String expressionString) 获取 SpEL 表达式对象- Parameters:
expressionString- SpEL 表达式字符串,例如 #{param.id}- Returns:
- 解析后的 Expression 对象,如果表达式为空则返回 null
-
getExpressionValue
@Nullable public static <T> T getExpressionValue(@Nullable Object root, @Nullable String expressionString, @NonNull Class<? extends T> clazz) 根据 SpEL 表达式从根对象中获取指定类型的值- Type Parameters:
T- 泛型类型- Parameters:
root- 根对象expressionString- SpEL 表达式字符串clazz- 返回值的目标类型- Returns:
- 表达式求值结果,如果根对象或表达式为空则返回 null
-
getExpressionValue
@Nullable public static <T> T getExpressionValue(@Nullable Object root, @Nullable String expressionString) 根据 SpEL 表达式从根对象中获取值(无类型指定)- Type Parameters:
T- 泛型类型- Parameters:
root- 根对象expressionString- SpEL 表达式字符串- Returns:
- 表达式求值结果,如果根对象或表达式为空则返回 null
-
getExpressionValue
public static <T> T[] getExpressionValue(@Nullable Object root, @Nullable String... expressionStrings) 根据多个 SpEL 表达式从根对象中获取值数组- Type Parameters:
T- 泛型类型,建议使用 Object 以避免类型转换异常- Parameters:
root- 根对象expressionStrings- SpEL 表达式字符串数组- Returns:
- 表达式求值结果数组,如果根对象或表达式数组为空则返回 null
-
getConditionValue
@Nullable public static boolean getConditionValue(@Nullable Object root, @Nullable String expressionString) 根据 SpEL 表达式进行条件求值 如果值为 null 则返回 false;如果为 Boolean 类型则直接返回;如果为 Number 类型则判断是否大于 0- Parameters:
root- 根对象expressionString- SpEL 表达式字符串- Returns:
- 条件求值结果
-
getConditionValue
@Nullable public static boolean getConditionValue(@Nullable Object root, @Nullable String... expressionStrings) 根据多个 SpEL 表达式进行条件求值,所有表达式结果需为 true 才返回 true- Parameters:
root- 根对象expressionStrings- SpEL 表达式字符串数组- Returns:
- 条件求值结果,所有表达式均为 true 时返回 true,否则返回 false
-
getRequest
public static jakarta.servlet.http.HttpServletRequest getRequest()获取当前 HTTP 请求的 HttpServletRequest 对象- Returns:
- HttpServletRequest 对象,如果无法获取则返回 null
-
getSessionId
获取当前会话的 Session ID- Returns:
- Session ID,如果请求或会话不存在则返回 null
-
getHeaders
获取 HTTP 请求的所有 Header- Parameters:
request- HTTP 请求对象- Returns:
- Header 键值对映射
-
getParameters
获取 HTTP 请求的所有参数- Parameters:
request- HTTP 请求对象- Returns:
- 参数键值对映射
-
getCurrentUser
public static org.miaixz.bus.core.basic.entity.Authorize getCurrentUser()获取当前用户信息- Returns:
- Authorize 对象,如果无法获取则返回 null
-
getTenantId
获取租户 ID,依次从以下来源尝试获取: 1. HTTP 请求头中的 'x_tenant_id' 2. HTTP 请求头中的 'tenant_id' 3. 当前登录用户的授权数据 4. 线程池上下文变量- Returns:
- 租户 ID 字符串,如果未找到或发生错误则返回 null
-