2009-09-09 8 views
0

Quel est le "code servlet" équivalent pour cela:JavaBean Introspection dans Servlets [Tomcat]

<jsp:useBean id="user" class="beans.UserBean" scope="session"/> 
<jsp:setProperty name="user" property="*"/> 

Tomcat traduit cela:

beans.UserBean user = null; 
synchronized (session) { 
    user = (beans.UserBean) _jspx_page_context.getAttribute("user", PageContext.SESSION_SCOPE); 
    if (user == null) { 
     user = new beans.UserBean(); 
     _jspx_page_context.setAttribute("user", user, PageContext.SESSION_SCOPE); 
    } 
} 

org.apache.jasper.runtime.JspRuntimeLibrary.introspect(_jspx_page_context.findAttribute("user"), request); 

est-il pas d'autre moyen de faire facilement cela?

+0

Quelle est votre question? – dfa

+0

Quel est le but de la question? – adatapost

Répondre

1

Chaque compilateur jsp donnera des résultats différents. En utilisant le commons beanutils il ressemblera à quelque chose d'une sorte de

for(Enumeration pnames = request.getParameterNames();pnames.hasMoreElements();) { 
    String name = pnames.nextElement(); 
    BeanUtils.setProperty(bean,name,request.getParameter(name)); 
} 

Notez qu'il ne gère pas les tableaux et autres cas particuliers. En outre, c'est pourquoi vous utilisez généralement un framework Web tel que Spring, Struts, Wicket, etc - il suffit d'un code de plaque de chaudière, et vous devez coder vos validations de toute façon.

+0

Il s'avère que je peux les utiliser directement sur mes servlets. Désolé de ne pas essayer avant de demander. Mais, je ne pense pas que cela fonctionne si utilisé sur un autre conteneur. Merci pour le lien, David. –

Questions connexes