Newsgroup: it.comp.java
Titolo: [Struts] valori alla jsp

Mi sono ritrovato a dover fronteggiare con struts senza averci mai avuto 
a che fare. Purtroppo il tempo stringe e non ho il tempo di aspettare a 
comprarmi il manuale e leggerlo tutto, e su internet non riesco a trovare 
(sicuramente colpa mia) come risolvere il mio problema.
Il problema è come passare un risultato di un operazione ad una jsp che 
dovrà quindi presentarlo.
Ho realizzato due jps: ldapSync.jsp ldadSyncResponse.jsp, un action:
LdapSyncAction ed un form: LdapSyncForm.
La prima jsp ha solo un bottone di un form che fa il submit. l'action 
di questo form è appunto l'action di cui sopra. L'action prende, fa 
vari smazzazzamenti e va a valorizzare i dati del form. Vorrei riuscire 
a riportare sulla jsp i dati del form di modo da poterli prendere con i 
vari <logic>.
Seguono alcuni spezzoni di codice. Spero in un vostro celere aiuto in 
quanto il tempo stringe davvero.
Ciao e grazie
Davide
public class LdapSyncForm extends ActionForm {
	private int			totalElement	= 0;
	private int 		wrongElement	= 0;
	private int			rightElement	= 0;
	private ArrayList	parsedUser		= null;
 
	/* (non-Javadoc)
	 * @see
org.apache.struts.action.ActionForm#reset(org.apache.struts.action.ActionMapping,
javax.servlet.http.HttpServletRequest)
	 */
	public void reset(ActionMapping arg0, HttpServletRequest arg1) {
		super.reset(arg0, arg1);
	}
	//... vari get/set
}
public class LdapSyncAction extends Action {
	private static final 	Logger 				logger =
Logger.getLogger(LdapSyncAction.class);
	private 				MessageResources	messages = null;
	/* (non-Javadoc)
	 * @see
org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping,
org.apache.struts.action.ActionForm,
javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse)
	 */
	public ActionForward execute(ActionMapping actionMapping,ActionForm
actionForm,HttpServletRequest request,HttpServletResponse response)/*
throws Exception*/{
		ActionMessages 		actionMessages 	= new ActionMessages();
		DirContext			context			= LdapUtil.getContext();
		SearchControls		searchControls	= new SearchControls();
		LdapSyncForm		ldapSyncForm 	= (LdapSyncForm) actionForm;
		NamingEnumeration	searchResult	= null;
		SearchResult		resultElement	= null;
		String				searchString	= "(uswappaccess=*trackplus*)";
		UserBean			user			= null;
		Attributes			attr			= null;
		TPerson				theNewOne		= null;
		ArrayList			users			= new ArrayList();
		int					totalElement	= 0;
		int					wrongElement	= 0;
		int					rightElement	= 0;
		try{
			//... bla bla bla varie operazioni		
			ldapSyncForm.setTotalElement(totalElement);
			ldapSyncForm.setRightElement(rightElement);
			ldapSyncForm.setWrongElement(wrongElement);
			ldapSyncForm.setParsedUser(users);
		}catch(NullPointerException npe){
			logger.error("execute() NullPointerException. Error during ldap
search",npe);
			actionMessages.add("org.apache.struts.action.GLOBAL_MESSAGE",new
ActionMessage("ldap.sync.error.search",npe));
		}catch(NamingException ne){
			logger.error("execute() NamingException. Error during ldap search",ne);
			actionMessages.add("org.apache.struts.action.GLOBAL_MESSAGE",new
ActionMessage("ldap.sync.error.search",ne));
		}catch(NoSuchElementException nsee){
			logger.error("execute() NoSuchElementException. Error during ldap
search",nsee);
			actionMessages.add("org.apache.struts.action.GLOBAL_MESSAGE",new
ActionMessage("ldap.sync.error.search",nsee));
		}
 
		if(!actionMessages.isEmpty()){
			logger.debug("execute() there are errors");
			saveErrors(request,actionMessages);
		}
		return actionMapping.findForward("done");
	}
	//...
}
<action    path="/ldapSync"
	type="package.LdapSyncAction"
	scope="request"
	name="ldapSyncForm"
	input="/ldapSync.jsp"
	validate="true"
	parameter="action">
	<forward name="done" path="/ldapSyncResponse.jsp"/>
</action>
<form-bean 		name="ldapSyncForm"
           		type="com.aurel.track.user.LdapSyncForm">
</form-bean>
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 dovrà quindi presentarlo.
Dentro la jsp
...
<bean:write name="ldapSyncForm" property="rightElement"/>
...
E' corretto? Ci sono metodi più corretti/eleganti/ecc?
Ciao
Davide


 E' corretto? >
provare no ?
Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 E' corretto? Ci sono metodi più corretti/eleganti/ecc?
cosi' o installi le jstl e scrivi:
<c:out value="${ldapSyncForm.rightElement}" />
Se usi le jstl hai sicuramente molti vantaggi, sono molto piu' comode e 
le hai anche in altri framework.
Le trovi sul sito di jakarta, nei jakarta taglib.
ciao
-- 
            Davide Gurgone
      web: 
http://www.gurgone.it/
mail: davidechiocciolinagurgonepuntoit