2013-03-22 4 views
2

Я использую весенний MVC. Когда пользователь зарегистрировался, электронное письмо будет отправлено на учетную запись пользователя.Как задать параметр запроса весной?

Это работает нормально .. и я также посылать идентификатор пользователя шифруется пользователя электронной почты, и для этого я написал шаблон ..

<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> 

Когда-либо пользователя получить электронную почту и нажмите, чтобы активировать ... Url идет как это ..

http://localhost:8080/EClass/home?a=tdpTA3Dz8DYSI+9F/DpMxmxGD/a1Kl+3oYqXc1NNH0U= 

и я хочу, чтобы получить этот зашифрованный идентификатор пользователя и для этого я буду писать метод ..

@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 колонки пользователя Activate=Yes ..

Пожалуйста, предложите мне ..

ответ

1

http://localhost:8080/EClass/home будет в основном вызове метода контроллера с в качестве параметра:

@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> 

также указать a / в атрибуте value для сопоставления запросов.

+0

Исключение: java.lang.IllegalStateException: ни BindingResult, ни обычный целевой объект для bean-name 'LOGIN' доступный как атрибут запроса \t по адресу org.springframework.web.servlet.support.BindStatus. (BindStatus.java:141) –

+0

@NarasimhamK вы пытаетесь использовать атрибут Login в своем JSP с настройкой его в классе контроллера, атрибут входа устанавливается в методе home(), а не в методе active(), поэтому измените свой кода соответственно. – Lakshmi

+0

@ Lakshmi..i'm не понимаю, объясните подробнее .. –

1

Вы должны сопоставить RequestMapping в «дом» :

@RequestMapping(value="/home", method=RequestMethod.GET) 
+0

один раз проверить мой отредактированный код ... –

+0

URL http: // localhost: 8080/EClass/home? A = tdpTA3Dz8DYSI + 9F/DpMxmxGD/a1Kl + 3oYqXc1NNH0U = вызовет метод с помощью RequestMapping (value = "/ home «). Параметр ** a = xxxx ** будет улавливаться @RequestParam ("a") String activeCode. Поэтому либо измените RequestMapping, либо URL-адрес (на http: // localhost: 8080/EClass/active? A =% s) –

0

Вы пропускаете слэш / в вашем отображении запроса. Добавьте / на уровне класса контроллера или на уровне метода. Но не так ..

Смежные вопросы