0

残りのプラグインを使用したstruts2で奇妙な動作に直面しています。奇妙なことに、私がすでに行ったWebアプリケーションでは、すべてが正常に機能しています。

さて、私は投稿フォーム付きのポップアップjspを持っています。このフォームアクションURLは、コントローラーのcreateメソッドを正しく呼び出します。

<form name="gestioneUtenteForm" action="../credenziali" method="post">
           <input type="hidden" name="idModifica" id="idUtente" value="<%=request.getParameter("idModifica") %>" />
            <div>
                <label>Nome Completo</label>
                <input type="text" name="nomeUtente" id="nomeUtente" />
            </div>
            <div>
                <label>Login</label>
                <input type="text" name="loginUtente" id="loginUtente" />
            </div>
            <div>
                <label>Password</label>
                <input type="password" name="password" id="password" />
            </div>
            <div>
                <label>Conferma Password</label>
                <input type="password" name="confermaPassword" id="confermaPassword" />
            </div>
            <!-- ... OTHER FIELDS ... -->

        <div><input type="submit" name="submit" value="Registra" /></div>
    </form>

私の問題は、コントローラーのすべてのプロパティ値がpostのパラメーターから設定されているわけではないということです。つまり、firebugを使用すると、すべてのパラメーターが投稿されていることがわかり、request.getParameter( "something")のような呼び出しでコントローラーにそれらを取得すると、すべての値が取得されます。ゲッターを使用してコントローラーのプロパティからパラメーターを取得しようとすると、正しく取得されますが、null値を持つ別の値が取得されます。具体的には:

private String nomeUtente;
private String loginUtente;
private String password;
... Other Properties ....


public String getNomeUtente() {
    return nomeUtente;
}

public void setNomeUtente(String nomeUtente) {
    this.nomeUtente = nomeUtente;
}

public String getLoginUtente() {
    return loginUtente;
}

public void setLoginUtente(String loginUtente) {
    this.loginUtente = loginUtente;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

... Other Setters & Getters ...



public HttpHeaders create() {
    GestioneUtenteService.creaUtente(nomeUtente, loginUtente, password,
            mailUtente, telUtente, scadenzaReg, scadenzaPwd, ruoloUtente);

    if (Integer.valueOf(ruoloUtente) == Constants.NUM_RUOLO_ADMIN_GENERALE)
        return new DefaultHttpHeaders("accesso").disableCaching();

    return index();
}

loginUtenteには、他のプロパティと同様に正しい値があります。しかし...nomeUtenteとパスワードはnullです。私が電話した場合:

public HttpHeaders create() {

    HttpServletRequest request = getServletRequest();
    nomeUtente = request.getParameter("nomeUtente");
    loginUtente = request.getParameter("loginUtente");
    password = request.getParameter("password");
    mailUtente = request.getParameter("mailUtente");
    telUtente = request.getParameter("telUtente");
    scadenzaReg = request.getParameter("scadenzaReg");
    scadenzaPwd = request.getParameter("scadenzaPwd");
    ruoloUtente = request.getParameter("ruoloUtente");

    logger.info("Creazione utente");
    GestioneUtenteService.creaUtente(nomeUtente, loginUtente, password,
            mailUtente, telUtente, scadenzaReg, scadenzaPwd, ruoloUtente);

    if (Integer.valueOf(ruoloUtente) == Constants.NUM_RUOLO_ADMIN_GENERALE)
        return new DefaultHttpHeaders("accesso").disableCaching();

    return index();
}

前に言ったように、すべてが投稿されているので、すべての値を取得しています...nomeUtenteとパスワードが含まれています。ここでも、Webアプリケーションを使用すると、すべてが機能し、コントローラーのプロパティがすべて正しく設定されます。

問題はどこにありますか?

4

0 に答える 0