2017-01-19 4 views
2

Вот мой класс действия:Не удалось получить строки запроса PARAMS в распорок класс 2 действия

public class ForgotPassword extends ActionSupport{ 

    private String j_username; 

    public String execute() throws Exception { 
     System.out.println("FORGOT PASSWORD ACTION CALLED"); 
     return SUCCESS; 
    } 

    public String getUsername() { 
     return j_username; 
    } 

    public void setUsername(String j_username) { 
     System.out.println("Username received is " + j_username); 
     this.j_username = j_username; 
    } 
} 

Я объявил перехватчики по умолчанию в struts.xml, который включает в себя:

<interceptor-ref name="params"> 
    <param name="excludeParams">dojo\..*</param> 
</interceptor-ref> 

От HTML-I отправлю параметры в класс действия следующим образом:

<body> 
    <input type="text" id="j_username" name="j_username"/> 

    <div style="margin-top:20px"> 
     <a class="forgot_password" 
      onclick="forgotPassword()" id="resetAnchor">Forgot Password</a>  
    </div> 

    <script type="text/javascript"> 
     function forgotPassword() { 
      var ctx = '${pageContext.request.contextPath}'; 
      var username = document.getElementById('j_username').value; 
      if (username !== null && username !== "") { 
       var username = document.getElementById('j_username').value; 
       console.log('username is ', username); 
       document.getElementById('resetAnchor').href = ctx + "/forgotPassword?j_username=" + username; 
      } else { 
       alert('please provider username'); 
      } 
     } 
    </script> 
</body> 

Все выглядит нормально, но я не могу напечатать эту строку в сторона метод установки:

System.out.println("Username received is " + j_username); 

Он печатает только эту строку: System.out.println("FORGOT PASSWORD ACTION CALLED");

Здесь действие, определенное в struts.xml:

<action name="forgotPassword" class="com.actions.ForgotPassword"> 
    <interceptor-ref name="params"/> 
    <result name="success">/reset.jsp</result> 
</action> 

что я не хватает?

+0

ты упомянул имя действия, которое '/ forgotPassword' в файле struts.xml. – Poornima

+0

@Poornima Переадресация страницы так, что означает ее возвращение 'Success' – kittu

+0

изменить имя переменной как имя пользователя на странице html и в классе действий – Poornima

ответ

1
public String getJ_username() { 
    return j_username; 
} 
public void setJ_username(String j_username) { 
    System.out.println("Username received is " + j_username); 
    this.j_username = j_username; 
} 

Просто измените setter и getter метод. потому что он читает метод. а не имя переменной.

+0

Без проблем сэр. если мой ответ правильный. вы можете любезно проверить его. – msagala25

1

Я думаю, что проблема связана с методами setter/getter.

Не могли бы вы попробовать это.

public String getJ_username() { 

     return j_username; 
    } 

    public void setJ_username(String j_username) { 

     this.j_username = j_username; 
    } 

Чтобы избежать таких ошибок, я предлагаю использовать IDE-помощь, а не создавать методы setter/getter самостоятельно.

Если вы используете Eclipse, вы можете выполнить следующие шаги.

  1. RightClick на переменной вы хотите, чтобы генерировать методы сеттер/геттер.
  2. Источник ==> Создание методов и сеттеров ...
  3. Проверить Seter и Getter флажков нажмите OK.

Step1 Step1

Step2

Step2

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

  • Нет связанных вопросов^_^