gpt4 book ai didi

java - Spring MVC - 传递的 http 请求参数与相同的字符串值不匹配,为什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:57:29 24 4
gpt4 key购买 nike

我以这种方式传递值为“adrian@domain.com”的电子邮件参数:

.../confirmation?email="adrian@domain.com"

该请求是通过以下 Controlerr 的方法处理的,该方法将参数分配给添加到 confirm.jsp View 的 ModelAtribute:

@RequestMapping(value="/confirmation")
public String accessConfirmationForm(@RequestParam(value = "email") String email, Model model)
{
ConfirmationCode confCode = new ConfirmationCode();
confCode.setEmail(email);
model.addAttribute("confCode", confCode);

return "confirm";
}

这是来自 confirm.jsp 的代码:

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ page session="false" %>
<html>
<head>
<title>Confirmation</title>
</head>
<body>

<form:form modelAttribute="confCode" action="${pageContext.request.contextPath}/confirm" method="get">
<table>
<tr>
<td>Confirmation code for email ${confCode.email}:</td>
<td><form:input path="confirmationCode" /></td>
<td><font color="red"><form:errors path="confirmationCode"></form:errors></font></td>
<td><form:hidden path="email" value= "${confCode.email}" /></td>
</tr>
<tr>
<td><input type="submit" value="Confirm"></td>
</tr>
</table>
</form:form>

提交表单请求后重定向到以下 Controller 的方法:

@RequestMapping(value = "/confirm", method = RequestMethod.GET)
public String confirmUser(
// @RequestParam(value = "email", required=false) String email,
@Valid @ModelAttribute(value = "confCode") ConfirmationCode confCode, BindingResult result,
Model model) {...}

问题是这个阶段的 confCode 属性的电子邮件变量不等于手动类型的字符串“adrian@domain.com”,但是当在控制台上打印电子邮件变量时,我可以看到完全相同的字符串“adrian@domain.com”没有任何尾随空格。

当我试图通过电子邮件获取 DAO 实现类中的实体时,它导调用子邮件变量不适用:

//it causes null reference 
Emails mail = entityManager.find(Emails.class, email);

//it returns proper Entity
Emails mail = entityManager.find(Emails.class, "adrian@domain.com");

我认为这两个 String 不相等的原因可能是编码问题,对吧?我的数据库中的编码是 latin-1 (iso 8859-1)?

如何解决这个问题?

为什么两个字符串不相等?

最佳答案

.../confirmation?email="adrian@domain.com"

我认为参数值不应该有双引号

关于java - Spring MVC - 传递的 http 请求参数与相同的字符串值不匹配,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32863436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com