我正在使用spring MVC。用户注册后,将向用户帐户发送电子邮件。
这样工作正常..而且我还将用户ID加密到用户电子邮件,为此我写了一个模板..
<bean id="activateAccountTemplate" class="org.springframework.mail.SimpleMailMessage">
<property name="subject" value="Account activation" />
<property name="text">
<value>
<![CDATA[
<html><body><p>Dear %s</p><p>Click <a href="http://localhost:8080/EClass/home?a=%s">here</a> to activate your account.</p></body></html>
]]>
</value>
</property>
</bean>
当用户收到电子邮件并点击激活时......网址就像这样......
http://localhost:8080/EClass/home?a=tdpTA3Dz8DYSI+9F/DpMxmxGD/a1Kl+3oYqXc1NNH0U=
我希望得到这个加密的用户ID,为此我正在编写方法..
@Controller
public class HomeController {
@RequestMapping(value="home", method=RequestMethod.GET)
public String home(Model model) throws Exception {
model.addAttribute(FormType.LOGIN.name(), FormType.LOGIN.getNewInstance());
model.addAttribute(FormType.SIGNUP.name(), FormType.SIGNUP.getNewInstance());
return "home";
}
@RequestMapping(value="active", method=RequestMethod.GET)
public String active(@RequestParam("a") String activeCode) throws Exception {
String userid = CryptUtil.decrypt(activeCode);
System.out.println("User id Displayed ===="+userid);
return "home";
}
}
但是在服务器控制台上什么也没发生......
基本上我想获得userid并使用userid更新用户列Activate=Yes
..
请建议我..
答案 0 :(得分:1)
您需要将RequestMapping映射到“home”:
@RequestMapping(value="/home", method=RequestMethod.GET)
答案 1 :(得分:1)
http://localhost:8080/EClass/home
基本上会使用a作为参数调用控制器方法:
@RequestMapping(value="/home", method=RequestMethod.GET)
public String home(Model model) throws Exception {
}
但基本上从您想要致电的问题
@RequestMapping(value="/active", method=RequestMethod.GET)
public String active(@RequestParam("a") String activeCode) throws Exception {
}
因此请将您的请求更改为
<html><body><p>Dear %s</p><p>Click <a href="http://localhost:8080/EClass/active?a=%s">here</a>
还在请求映射的value属性中指定/
。
答案 2 :(得分:0)
您的请求映射中缺少斜杠/
。在方法级别的控制器级别或处添加/
。但不是两个..