正在解析 Spring 视图中的 EL 变量

Parsing Spring EL Variable in View

我有一个用 Spring EL 写的变量,我想 url 解码,我可以在 curly 括号之间插入一段代码吗?必须在控制器中进行解析?

<form:hidden id="pass" path="password" value="${param.password}" htmlEscape="true" />

例如,我可以这样做吗:

<form:hidden id="pass" path="password" value="${URLDecoder.decode(param.password, "UTF-8")}" htmlEscape="true" />

问题是一些密码有特殊字符并且是 url 编码的。

尝试使用spring:eval执行静态方法调用并设置值。参考文献:

Spring Eval Reference

Spring Eval Example 1

更新:

Spring Eval Example 2

更新: 尝试了您正在寻找的东西,这就是我所拥有的:

控制器:

@RequestMapping("/testStaticCall")
    public String testStaticCall(ModelMap map) {
        map.addAttribute("password", "1234%23");
        return "testStaticCallJsp";
    }

JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Test</title>
</head>
<body>
    <spring:eval expression="T(java.net.URLDecoder).decode(password)" var="decodedPassword"></spring:eval>
    <form:input id="pass" path="password" value="${decodedPassword}" htmlEscape="true" />
</body>
</html>

输出: