Hi Eugenio,
i just tried to replicate Your problem,
the thing is that i remember in S1 (don't know which version) that was
normal behavior,
getter was called n times where n is list.size() - more or less.
But in S2 i don't see it anymore.
So if You want to find what's going on try to add some debuging.
Best greetings,
Paweł Wielgus.
2008/12/5 Felipe Lorenz <[EMAIL PROTECTED]>:
> Did you try to debug your application? Or try to see from what
> Action/JSP its called! Or create a Interceptor to print a log:
>
> public class Log4JInterceptor extends AbstractInterceptor {
>
> @Override
> public String intercept(ActionInvocation invocation) throws Exception {
> String comando = invocation.getInvocationContext().getName();
> Map parametros = invocation.getInvocationContext().getParameters();
> Map sessao = invocation.getInvocationContext().getSession();
>
> String loginUsuario = "anonimo";
> if( sessao.containsKey(SessionSuport.USER_SESSION) ) {
> Colaborador colaborador = (Colaborador) sessao.get(
> SessionSuport.USER_SESSION );
> loginUsuario = colaborador.getLogin();
> }
>
> String linhaLog = "";
> Logger log = Logger.getLogger( comando );
> String retorno = invocation.invoke();
>
> if( !retorno.equals("erro") ) {
> for( Object chave : parametros.keySet() ) {
> Object valor = parametros.get( chave );
> String valorStr = "";
> if( valor instanceof String[] ) {
> for( String atual : ((String[])valor) )
> valorStr += atual + ",";
> }
> valorStr = valorStr.substring( 0, valorStr.length()-1 );
> linhaLog += chave + "=" + valorStr + ";";
> }
> linhaLog = linhaLog.trim();
>
> if( !linhaLog.equals("") ) {
> PatternLayout layout = new PatternLayout(
> "%d{HH:mm:ss} - " + loginUsuario + " - %c - %m%n" );
>
> String formatoData = "dd-MM-yyyy";
> SimpleDateFormat sdf = new SimpleDateFormat( formatoData );
> String hoje = sdf.format( new Date() );
>
> String nomeArquivo = "logGerAtividade.log";
>
> DailyRollingFileAppender appender = new
> DailyRollingFileAppender( layout, nomeArquivo, "dd-MM-yyyy" );
> appender.setEncoding( "ISO-8859-1" );
>
> ConsoleAppender consoleAppender = new ConsoleAppender(
> layout, "System.out" );
> consoleAppender.setEncoding( "ISO-8859-1" );
>
> log.addAppender( appender );
> log.addAppender( consoleAppender );
>
> log.info( linhaLog );
>
> log.removeAllAppenders();
> }
> } else {
> ActionSupport action = ActionSupport.class.cast(
> invocation.getAction() );
> Collection erros = action.getActionErrors();
> for( Object erro : erros ) {
> linhaLog += erro + ",";
> }
>
> linhaLog = linhaLog.substring( 0, linhaLog.length()-1 );
>
> if( !linhaLog.equals("") ) {
> PatternLayout layout = new PatternLayout(
> "%d{HH:mm:ss} - " + loginUsuario + " - %c - %m%n" );
> String formatoData = "dd-MM-yyyy";
> SimpleDateFormat sdf = new SimpleDateFormat( formatoData );
> String hoje = sdf.format( new Date() );
>
> String nomeArquivo = "logGerAtividadeERROR.log";
>
> DailyRollingFileAppender appender = new
> DailyRollingFileAppender( layout, nomeArquivo, "dd-MM-yyyy" );
> appender.setEncoding( "ISO-8859-1" );
>
> ConsoleAppender consoleAppender = new ConsoleAppender(
> layout, "System.out" );
> consoleAppender.setEncoding( "ISO-8859-1" );
>
> log.addAppender( appender );
> log.addAppender( consoleAppender );
>
> log.info( linhaLog );
>
> log.removeAllAppenders();
> }
> }
> return retorno;
> }
>
> }
>
> On Fri, Dec 5, 2008 at 9:07 AM, Eugenio Perrotta Neto
> <[EMAIL PROTECTED]> wrote:
>> anybody has the answer?
>>
>> On Thu, Dec 4, 2008 at 2:05 PM, Eugenio Perrotta Neto <
>> [EMAIL PROTECTED]> wrote:
>>
>>> the code is here:
>>>
>>>
>>>
>>> i have a tag file called page.tag
>>>
>>>
>>> <%@ tag body-content="scriptless" %>
>>> <%@ tag pageEncoding="UTF-8" %>
>>> <[EMAIL PROTECTED] prefix="s" uri="/struts-tags" %>
>>> <[EMAIL PROTECTED] prefix="sicat2" uri="/WEB-INF/sicat2.tld" %>
>>> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
>>> http://www.w3.org/TR/html4/loose.dtd">
>>> <html>
>>> <head>
>>> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
>>> />
>>> <link rel="stylesheet" href="<s:url value='/css/main.css'
>>> includeParams='none' encode='false' namespace="/" />" type="text/css"/>
>>> <link rel="shortcut icon" href="<s:url
>>> value='/images/favicon.ico'/>" />
>>> <title><s:property value="appName" /> : <s:property
>>> value="moduleName" /> : <s:property value="pageTitle" /></title>
>>> <SCRIPT src="<s:url value='/js/lib/prototype/
>>> prototype-1.6.0.3.js' includeParams='none' />" charset="UTF-8"
>>> type="text/javascript"></SCRIPT>
>>> <SCRIPT src="<s:url value='/js/common.js' includeParams='none'/>"
>>> charset="UTF-8" type="text/javascript"></SCRIPT>
>>> </head>
>>> <body class="sicat2">
>>> <table width="100%">
>>> <tr><td><h1 id="pageTitle"><s:property value="moduleName"/> :
>>> <s:property value="pageTitle"/></h1></td></tr>
>>> <tr><td><jsp:doBody /></td></tr>
>>> </table>
>>> </body>
>>> </html>
>>>
>>>
>>>
>>>
>>> and i have a jsp whit the code:
>>>
>>>
>>> <%@ page language="java" contentType="text/html; charset=UTF-8"
>>> pageEncoding="UTF-8"%>
>>>
>>> <%@ taglib prefix="ui" tagdir="/WEB-INF/tags"%>
>>> <%@ taglib prefix="s" uri="/struts-tags" %>
>>> <%@ taglib prefix="sicat2" uri="/WEB-INF/sicat2.tld" %>
>>> <%@ taglib prefix="display" uri="http://displaytag.sf.net" %>
>>>
>>> <ui:page>
>>> <sicat2:toolbar>
>>> <sicat2:submitButtom action="MaterialServicoList" label="Filtrar"
>>> image="/images/icons/filter.png" />
>>> <sicat2:actionButtom action="MaterialServicoAdd" label="Novo"
>>> image="/images/icons/add.png" />
>>> </sicat2:toolbar>
>>> <fieldset>
>>> <legend>Filtro</legend>
>>> <s:form>
>>> <s:radio label="Situação" list="situacoes"
>>> name="filterSituacao" />
>>> </s:form>
>>> </fieldset>
>>> <display:table name="list" id="materialServico"
>>> cellspacing="0">
>>> <display:column property="numero" sortName="numero"
>>> sortable="true" defaultorder="ascending"/>
>>> <display:column property="descricao" sortName="descricao"
>>> sortable="true" defaultorder="ascending"/>
>>> <display:column>
>>> <sicat2:actionButtom action="MaterialServicoEdit"
>>> title="Editar" image="/images/icons/edit.png" >
>>> <sicat2:buttonParam name="materialServico.id" value="#
>>> attr.materialServico.id <http://attr.materialservico.id/>"/>
>>> </sicat2:actionButtom>
>>> </display:column>
>>> </display:table>
>>> </ui:page>
>>>
>>>
>>> My action has this code:
>>>
>>> package br.com.cesan.sicat2.module.servico;
>>>
>>> import java.util.List;
>>> import java.util.Map;
>>>
>>> import org.displaytag.pagination.PaginatedList;
>>> import org.displaytag.properties.SortOrderEnum;
>>>
>>> import br.com.cesan.sicat2.domain.servico.SituacaoMaterialServico;
>>> import br.com.cesan.sicat2.util.FilterInfo;
>>> import br.com.cesan.sicat2.util.ListInfo;
>>> import br.com.cesan.sicat2.util.SortOrder;
>>>
>>> public class MaterialServicoList extends MaterialServicoBaseAction {
>>>
>>> private SituacaoMaterialServico filterSituacao =
>>> SituacaoMaterialServico.ATIVO;
>>>
>>> private FilterInfo filter = new FilterInfo(10, 1, "numero",
>>> SortOrder.ASC);
>>>
>>> public void setFilter(FilterInfo filterInfo) {
>>> this.filter = filterInfo;
>>> }
>>>
>>> public FilterInfo getFilter() {
>>> return filter;
>>> }
>>>
>>> public PaginatedList getList(){
>>> final ListInfo list = materialServicoService.list(getFilter());
>>>
>>> return new PaginatedList(){
>>> public int getFullListSize() {
>>> return list.getListSize();
>>> }
>>>
>>> public List getList() {
>>> return list.getList();
>>> }
>>>
>>> public int getObjectsPerPage() {
>>> return getFilter().getPageSize();
>>> }
>>>
>>> public int getPageNumber() {
>>> return getFilter().getPage();
>>> }
>>>
>>> public String getSearchId() {
>>> return "";
>>> }
>>> public String getSortCriterion() {
>>> return getFilter().getSortField();
>>> }
>>> public SortOrderEnum getSortDirection() {
>>> SortOrder so = getFilter().getSortOrder();
>>> if(so == SortOrder.ASC){
>>> return SortOrderEnum.ASCENDING;
>>> }
>>> else{
>>> return SortOrderEnum.DESCENDING;
>>> }
>>> }
>>> };
>>> }
>>>
>>>
>>>
>>>
>>>
>>> public String execute(){
>>> return SUCCESS;
>>> }
>>>
>>>
>>>
>>>
>>> public SituacaoMaterialServico getFilterSituacao() {
>>> return filterSituacao;
>>> }
>>>
>>> public void setFilterSituacao(SituacaoMaterialServico filterSituacao) {
>>> this.filterSituacao = filterSituacao;
>>> }
>>>
>>>
>>>
>>>
>>> @Override @SuppressWarnings("unchecked")
>>> public Map getSituacoes() {
>>> Map situacoes = super.getSituacoes();
>>> situacoes.put("", "Todos");
>>> return situacoes;
>>> }
>>>
>>>
>>> }
>>>
>>>
>>>
>>> my struts.xml :
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <!DOCTYPE struts PUBLIC
>>> "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
>>> "http://struts.apache.org/dtds/struts-2.0.dtd">
>>>
>>>
>>> <struts>
>>> <constant name="struts.objectFactory" value="spring" />
>>> <package name="sicat2-default" extends="struts-default"
>>> abstract="true">
>>> <interceptors>
>>> <interceptor name="annotationRoles"
>>> class="br.com.cesan.sicat2.interceptor.AnnotationRolesInterceptor" />
>>> <interceptor-stack name="defaultStack">
>>> <interceptor-ref name="annotationRoles" />
>>> <interceptor-ref name="exception" />
>>> <interceptor-ref name="alias" />
>>> <interceptor-ref name="servletConfig" />
>>> <interceptor-ref name="timer" />
>>> <interceptor-ref name="prepare" />
>>> <interceptor-ref name="i18n" />
>>> <interceptor-ref name="chain" />
>>> <interceptor-ref name="modelDriven" />
>>> <interceptor-ref name="debugging" />
>>> <interceptor-ref name="fileUpload" />
>>> <interceptor-ref name="checkbox" />
>>> <interceptor-ref name="staticParams" />
>>> <interceptor-ref name="params">
>>> <param name="excludeParams">dojo\..*</param>
>>> </interceptor-ref>
>>> <interceptor-ref name="conversionError" />
>>> </interceptor-stack>
>>> </interceptors>
>>> </package>
>>>
>>> <package name="sicat2-ui" extends="sicat2-default" >
>>> <interceptors>
>>> <interceptor name="ui"
>>> class="br.com.cesan.sicat2.struts2.UIActionInterceptor" />
>>> <interceptor-stack name="uiStack">
>>> <interceptor-ref name="defaultStack" />
>>> <interceptor-ref name="store" />
>>> <interceptor-ref name="ui" />
>>> <interceptor-ref name="validation">
>>> <param
>>> name="excludeMethods">setup,input,back,cancel,browse,execute</param>
>>> </interceptor-ref>
>>> <interceptor-ref name="workflow">
>>> <param
>>> name="excludeMethods">setup,input,back,cancel,browse,execute</param>
>>> </interceptor-ref>
>>> </interceptor-stack>
>>> </interceptors>
>>> <default-interceptor-ref name="uiStack" />
>>> </package>
>>> <package name="servico" extends="sicat2-ui" namespace="/servico">
>>> <action name="MaterialServicoList!*" method="{1}"
>>> class="br.com.cesan.sicat2.module.servico.MaterialServicoList">
>>>
>>> <result>/WEB-INF/jsp/module/servico/MaterialServicoList.jsp</result>
>>> </action>
>>> <action name="MaterialServicoAdd!*" method="{1}"
>>> class="br.com.cesan.sicat2.module.servico.MaterialServicoAdd">
>>> <param name=""></param>
>>> <result
>>> name="input">/WEB-INF/jsp/module/servico/MaterialServicoAdd.jsp</result>
>>> <result name="success" type="redirectAction">
>>> <param name="actionName">MaterialServicoList</param>
>>> <param name="operationMode">RETRIEVE</param>
>>> </result>
>>> </action>
>>> <action name="MaterialServicoEdit!*" method="{1}"
>>> class="br.com.cesan.sicat2.module.servico.MaterialServicoEdit">
>>> <result
>>> name="input">/WEB-INF/jsp/module/servico/MaterialServicoEdit.jsp</result>
>>> <result name="success"
>>> type="chain">MaterialServicoList</result>
>>> </action>
>>> </package>
>>> </struts>
>>>
>>>
>>> what else i need to show to help?
>>>
>>>
>>> On Thu, Dec 4, 2008 at 1:57 PM, Dave Newton <[EMAIL PROTECTED]> wrote:
>>>
>>>> --- On Thu, 12/4/08, Eugenio Perrotta Neto wrote:
>>>> > i know that. but it just happen when i use tiles or a Tag
>>>> > file. if a use a plain JSP it does not happen
>>>> >
>>>> You'll probably have to supply some example
>>>> configuraton/pages/definitions/etc. that duplicate the problem for us to
>>>> help; I'm using Tiles in an S2 app and don't see this behavior (as far as I
>>>> know, anyway).
>>>>
>>>> Dave
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>>
>>>
>>>
>>> --
>>> Eugenio Perrotta Neto
>>> Tel: (27) 9913-8080
>>>
>>
>>
>>
>> --
>> Eugenio Perrotta Neto
>> Tel: (27) 9913-8080
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>