Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    inviare bean da jsp a servlet

    Ciao a tutti,
    ho un form in una pagina jsp dalla quale mi piacerebbe inviare un bean al servlet invece di lasciare al servlet stesso la raccolta dei dati dalla request.

    Qualcuno mi può illustrare sul codice quì sottostante quello che devo scrivere.
    Grazie

    Codice PHP:
    <form action="<%= request.getContextPath() %>/account?task=new" method="post" onsubmit="return checkForm(this);"
            <
    fieldset
            <
    legend></legend
            [
    b]marked fields are obbligatory[/b]
     
            <
    label for="companyName">Company name or name and surname</label
            <
    input id="companyName" name="companyName" type="text" /> 
            [
    img]<%= request.getContextPath() %>/images/application/required.jpg[/img]
     
            <
    label for="firstAddress">First address</label
            <
    input id="firstAddress" name="firstAddress" type="text" /> 
            <
    input class="submit" type="submit" value="Submit" /> 
            </
    fieldset
          </
    form

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    Ho spostato la discussione nel forum dedicato a Java.
    In futuro, poni qui le tue domande relative a questo linguaggio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    a dire il vero mi sembrava di aver premuto il pulsante di nuovo thread quando ci ero già entrato nel forum dedicato a Java. :master:

  4. #4
    Devi avere un bean, che abbia come attribbuti nominati allo stesso modo dei campi di input, poi usare in testa un <jsp:useBean> e un <jsp:setProperty>.

    In questo modo hai il bean in automatico nello scope che gli dici, senza necessità di fare i get dei parametri dalla URL.

    Il modo preciso di utilizzo, pero non lo ricordo, l'ho fatto si è no una volta

  5. #5
    dici nell'attributo action del tag form?
    Sai se vale anche nel caso debba inviarlo ad un servlet?

    Grazie, ciao.

  6. #6
    Originariamente inviato da Sandrocchio_0.1
    dici nell'attributo action del tag form?
    Sai se vale anche nel caso debba inviarlo ad un servlet?

    Grazie, ciao.
    ad esempio se hai un <input type="text" name="attribute_name"> nel bean deve essere presente un String attribute_name,

    si non importa se lo passi da jsp a jsp oppure da jsp a servlet, l'importante e che se nel jsp:useBean metti scope="session" nella servlet devi andare a prenerlo dalla session.

  7. #7
    vediamo se ho capito:
    nel mio bean ho tutti i setter, e costruttori vari che coincidonon con i nomi dei campi; nella mia unica pagina jsp dove ho il form ci metto una cosa simile a questa:
    Codice PHP:
    <jsp:useBean id="user" class="UserData" scope="session"/>
    <
    jsp:setProperty name="user" property="*"/>
    <
    html>
    <
    body>
    <
    form action="<%= request.getContextPath() %>/account?task=new" method="post" onsubmit="return checkForm(this);">
            <
    fieldset>
            <
    legend></legend>
            [
    b]marked fields are obbligatory[/b]

            <
    label for="companyName">Company name or name and surname</label>
            <
    input id="companyName" name="companyName" type="text" />
            [
    img]<%= request.getContextPath() %>/images/application/required.jpg[/img]

            <
    label for="firstAddress">First address</label>
            <
    input id="firstAddress" name="firstAddress" type="text" />
            <
    input class="submit" type="submit" value="Submit" />
            </
    fieldset>
          </
    form
    Se non dico cavolate, non appena l'utente premi il submit automaticamente i setter dei bean vengono chiamati. Nella servlet indicata nell'attributo action andrò a pescare il bean dalla session. Giusto? Non sono sicuro che quelle due righe relative al bean
    <jsp:useBean id="user" class="UserData" scope="session"/>
    <jsp:setProperty name="user" property="*"/>
    possano stare nella stessa pagina del form.

  8. #8
    tutto giusto

  9. #9
    avrei bi una mano per raccogliere il bean dalla session nella servlet.
    Nella jsp ho questo:
    Codice PHP:
    <%@ include  file="/includes/header.jsp"%>
    <
    jsp:useBean id="customer" scope="session" class="model.CustomerModel"/>
    <
    jsp:setProperty name="customer" property="*"/>
      <
    div id="contenitore"
        <
    div id="sx"> </div
        <
    div id="dx">  
          <
    form action="<%= request.getContextPath() %>/account?task=new" method="post"
            <
    fieldset
            <
    input id="companyName" name="companyName" type="text" /> 
            <
    input id="firstAddress" name="firstAddress" type="text" /> 
            <
    input class="submit" type="submit" value="Submit" /> 
            </
    fieldset
          </
    form
        </
    div
      </
    div
      <%@ include  
    file="/includes/footer.jsp"%> 
    Nella servlet invece:
    Codice PHP:
    HttpSession session request.getSession(false);
                
                
    //TASK! manages the user accounts
                
    if(request.getServletPath().equals("/account")){
                    
                    
    //create a new account
                    
    if(request.getParameter("task").equals("new")){
                        
    CustomerModel user = (CustomerModel)session.getAttribute("customer");
                        
    user.getCompanyName();
                        
    destination "/application/message.jsp";
                    } 
    Nel user.getCompanyName() ho messo un "watch" di netBeans, che però mi riporta un bel null.

    Considerazione, la classe model.CustomerModel si trova dentro la cartella WEB-INF/classes
    Che cosa sto sbagliando??

  10. #10
    ma ti ritorna null il metodo oppure e user null?

    Sintatticamente mi sembra corretto, fai queste prove:

    1) prova invece di andare in una servlet, vai in una jsp
    2) prova a cambiare lo scope da session a request, tanto per vedere cosa succede.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.