2017-02-13 28 views
0

Я хочу сделать регистрацию, написав userEmail, userPassword и userRole в файлах .properties, а затем с ними работать в auth-config.xml. поэтому, я сделать это в loginManagerBean: я знаю дублирования кода в методе регистра, я починю егоМетод не найден в Java Bean через xhtml с точной подписью

public void register(String Remail, String Rpassword, String Rrole) throws InvalidUserException{ 
    Properties prop = new Properties(); 
    InputStream in = getClass().getResourceAsStream("auction-roles.properties"); 
    try { 
     prop.load(in); 
     prop.setProperty(Remail,Rrole); 
     prop.store(new FileOutputStream("auction-roles.properties"), null); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    Properties prop2 = new Properties(); 
    InputStream in2 = getClass().getResourceAsStream("auction-users.properties"); 
    try { 
     prop2.load(in2); 
     prop2.setProperty(Remail,Rpassword); 
     prop2.store(new FileOutputStream("auction-users.properties"), null); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    login(Remail,Rpassword); 

} 

LoginManager является именованным, sessionscope, с сохранением состояния боб .. вещь что Войти работает, но при регистрации:

<h:commandButton id="registerButton" value="register" 
     action="#{loginManager.register(registerEmail, registerPassword, registerRole)}"/> 

у меня есть эти ошибки после нажатия на кнопке регистра:

javax.servlet.ServletException: javax.el.MethodNotFoundException: /templates/register.xhtml @34,86 action="#{loginManager.register(registerEmail, registerPassword, registerRole)}": Method not found: class org.auction.LoginManager$244422980$Proxy$_$$_Weld$EnterpriseProxy$.register(java.lang.String, java.lang.String, java.lang.String) 

ответ

1

передать параметр через F: пары

<h:commandButton id="registerButton" value="register" action="#{loginManager.register} /> 
     <f:param name="regEmail" value="registerEmail" /> 
     <f:param name="regPwd" value="registerPassword" /> 
     <f:param name="regRole" value="registerRole" /> 
    </h:commandButton> 

В управляемом методе боба получить значение, как это

public void register(){ 

Map<String, String> resMap = (Map<String, String>) externalContext.getRequestParameterMap(); 
String Remail= parameterMap.get("regEmail"); 
String Rpassword= parameterMap.get("regPwd"); 
String Rrole= parameterMap.get("regRole"); 

     Properties prop = new Properties(); 
InputStream in = getClass().getResourceAsStream("auction-roles.properties"); 
try { 
    prop.load(in); 
    prop.setProperty(Remail,Rrole); 
    prop.store(new FileOutputStream("auction-roles.properties"), null); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

Properties prop2 = new Properties(); 
InputStream in2 = getClass().getResourceAsStream("auction-users.properties"); 
try { 
    prop2.load(in2); 
    prop2.setProperty(Remail,Rpassword); 
    prop2.store(new FileOutputStream("auction-users.properties"), null); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

login(Remail,Rpassword); 

     } 
+0

спасибо .. сделано, но до сих пор не работает: "javax.servlet.ServletException: javax.el.MethodNotFoundException:/шаблоны/регистрация. xhtml @ 33,92 action = "# {loginManager.register}": метод не найден: класс ".. bean named (loginManager), а при входе он видит методы из loginManager, но при регистрации он дает мне ошибки. действительно не знаю, что происходит – Nica

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