正在解析 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 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>
输出:
我有一个用 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 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>
输出: