2009-09-09 4 views
0

Что не является эквивалентом «сервлет кода» для этого:JavaBean Самоанализ в сервлеты [Tomcat]

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

Tomcat переводит это:

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); 

Есть ли другого способа легко сделать это?

+0

Что вы думаете? – dfa

+0

Какова цель вопроса? – adatapost

ответ

1

Каждый компилятор jsp даст разные результаты. Использование в commons beanutils это будет выглядеть что-то из рода

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

Обратите внимание, что он не обрабатывает массивы и другие специальные случаи.

Кроме того, именно поэтому вы используете каркас, такой как Spring, Struts, Wicket и т. Д. - это всего лишь код плиты котла, и вам все равно нужно закодировать свои проверки.

+0

Оказывается, я могу использовать их непосредственно на своих сервлетах. Извините, что не пытались, прежде чем спрашивать. Но я не думаю, что это работает, если используется в другом контейнере. Спасибо за ссылку, Дэвид. –

Смежные вопросы