【问题标题】:Couldn't reset my password CRUD无法重置我的密码 CRUD
【发布时间】:2014-03-06 11:00:24
【问题描述】:

我有一个表单,如果用户忘记了密码,他可以在其中重置密码。 resetForm.xhtml

<h:form id="newCustomerForm"  >
                <fieldset>
                    <legend>Rest Password</legend>
                    <table border="0" >
                        <tbody >   
                              <tr type="text">
                                <td>
                                    <p:outputLabel  value="Account Login :" for="pseudo"/>    
                                </td>
                                <p:spacer height="5px" />
                                <td>
                                    <p:inputText id="pseudo" value="#{accountMB.login}" title="Pseudo" required="true" requiredMessage="The Pseudo field is required.">

                                    </p:inputText>
                                    <p:watermark for="pseudo" value="Login" />  
                                    <p:message for="pseudo"  display="text"/>
                                </td>
                            </tr>
                            <tr type="password">
                                <td>
                                    <p:outputLabel  value="New password :" for="pwd1"/>
                                </td>
                                <p:spacer height="5px" />
                                <td>
                                    <p:password id="pwd1" value="#{accountMB.password}" feedback="true" match="pwd2" label="Password 1" required="true" requiredMessage="The Password field is required."/>  
                                    <p:watermark for="pwd1" value="Password" />  
                                    <p:message for="pwd1"/>
                                </td>

                            </tr>
                            <p:spacer height="5px" /> 
                            <tr type="password">
                                <td>
                                    <p:outputLabel  value="Confirm password :" for="pwd2"/>
                                </td>
                                <p:spacer height="5px" />
                                <td>
                                    <p:password id="pwd2" value="#{accountMB.password}" feedback="true" label="Password 2" required="true" requiredMessage="The confirm password field is required."/>  
                                    <p:watermark for="pwd2" value="Confirm Password" />  
                                    <p:message for="pwd2"/>
                                </td>
                            </tr>                          
                        </tbody>
                    </table>
                    <div type="submit" align="right" style="margin-top: 5px">
                        <p:commandButton style="width: 130px; height: 40px" value="Save" ajax="false" icon="ui-icon-circle-check" styleClass="ui-priority-primary" action="#{accountMB.updateAccount()}"/>             
                    </div>  
                </fieldset>    
            </h:form>  

这是我的托管 Bean

@ManagedBean(name = "accountMB")
@SessionScoped
public class AccountManagedBean implements Serializable {

    private static Logger logger = Logger.getLogger(AccountManagedBean.class.getName());
    @Inject
    private AccountBusinessLocal accountBusinessLocal;
    private String login;
    private String password;
    private Account passwordAccount;

    public AccountManagedBean() {
        customer = new Customer();
    }

    @PostConstruct
    public void init() {
        passwordAccount= new Account();
    }
  public String updateAccount() {
        logger.log(Level.SEVERE, "*****Update account***** ");
        passwordAccount = accountBusinessLocal.findByLogin(login);
        accountBusinessLocal.UpdateAccount(passwordAccount);
        logger.log(Level.SEVERE, passwordAccount.toString());
        return "login.jsp";
    }
 }

我的问题是当我输入登录名和新密码并提交时。数据库中的密码没有更新,所以我无法使用新密码登录。

我错过了什么??

【问题讨论】:

    标签: jakarta-ee jsf-2 crud updates


    【解决方案1】:

    您实际上并没有更新 passwordAccount 对象中的密码。

    passwordAccount = accountBusinessLocal.findByLogin(login);
    
    // now update the passwordAccount with the entered password
    passwordAccount.setPassword(password);
    
    accountBusinessLocal.UpdateAccount(passwordAccount);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-13
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多