You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Wilson M Penha Jr. (JIRA)" <ji...@apache.org> on 2008/06/07 18:47:05 UTC

[jira] Updated: (WW-2672) Autocomplenter don't submit the attribute value to the url action when use valueNotifyTopics.

     [ https://issues.apache.org/struts/browse/WW-2672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Wilson M Penha Jr. updated WW-2672:
-----------------------------------

    Description: 
I got three days running on this issue, and now I could identify what happens and when, but I could not say why?

I'm doing one app with Struts2.1.x, Spring2.5.x, Hibernate3.

I've been trying to run a autocompleter with valueNotifyTopics to another component such as <s:div and/or <s:autocompleter.

See my code:

.jsp

<form id="formEditar">
<s:textfield theme="simple" id="id" name="proposta.id" cssStyle="display:none"/>

<sx:autocompleter 
   id="condicaoPagamentoId" name="proposta.condicaoPagamento.id" 
   list="condicaoPagamentoList" keyName="proposta.condicaoPagamento.id" listKey="id"
   listValue="descricao"
   valueNotifyTopics="/condicaodepagamento"
   forceValidOption="true" />

<s:url var="getParcelas" namespace="/proposta" action="gerarParcelas">
</s:url> 
  <sx:div id="divParcelas" href="%{#getParcelas}" listenTopics="/condicaodepagamento" formId="formEditar" autoStart="true">
  </sx:div>
</form>

struts.xml

<package name="proposta" extends="struts2" namespace="/proposta">
<action name="gerarParcelas" class="propostaAction" method="gerarParcelas">
	<interceptor-ref name="defaultStack">
	<param name="validation.excludeMethods">gerarParcelas</param>
	</interceptor-ref>
	<result>/WEB-INF/jsp/proposta/parcelas.jsp</result>
</action>
</package>

Behave 1 at IE7:
When I open my jsp it isn't sending the value for "proposta.condicaoPagamento.id" to my action, it appears as null, causing an error.

Behave 2 at IE7:
I changed the "proposta.id" attribute to be set with <input type="hidden"...> instead <s:textfield...>, so when I open my jsp I got another exception before it reach the action, is was: 
java.lang.NumberFormatException: For input string: "[Ljava.lang.String;@1d1cd0d"
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Long.parseLong(Unknown Source)
	at java.lang.Long.parseLong(Unknown Source)
.....
ognl.MethodFailedException: Method "setId" failed for object scoweb.app.model.CondicaoPagamento@ed21d3 [java.lang.NoSuchMethodException: setId([Ljava.lang.String;)]
....
expr: proposta.condicaoPagamento.id val: [Ljava.lang.String;@1d1cd0d context: ognl.OgnlContext@99c60f88 root:[scoweb.app.action.PropostaAction@2a590d, com.opensymphony.xwork2.DefaultTextProvider@117ae94] value: [Ljava.lang.String;@1d1cd0d
2008-06-07 12:29:30,234 ERROR (com.opensymphony.xwork2.interceptor.ParametersInterceptor:24) - ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'proposta.condicaoPagamento.id' on 'class scoweb.app.action.PropostaAction: Error setting expression 'proposta.condicaoPagamento.id' with value '[Ljava.lang.String;@1d1cd0d'
2008-06-07 12:29:30,515 ERROR (org.apache.struts2.dispatcher.Dispatcher:28) - Could not find action or result
No result defined for action scoweb.app.action.PropostaAction and result input
	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:357)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:259)
                    .............
The attribute type for Id is set to Long

private Long Id;
setId(Long id)...
Long getId()...

Behave 3 at Firefox:
For both cases it's show the same as Behave 2 does.

I tried to change the attributes from the autocompleter to do like the showcase example, see what happens:
.jsp

<s:textfield theme="simple" id="id" name="proposta.id" cssStyle="display:none"/>

<sx:autocompleter 
  name="select" 
  list="{'fruits','colors'}" 
  value="colors"
   valueNotifyTopics="/condicaodepagamento"
   forceValidOption="true" />

<s:url var="getParcelas" namespace="/proposta" action="gerarParcelas">
</s:url> 
  <sx:div id="divParcelas" href="%{#getParcelas}" listenTopics="/condicaodepagamento" formId="formEditar" autoStart="true">
  </sx:div>

Behave 1 at IE7 

The attribute "select" appears as null into the action

Behave 2 at IE7:
I changed the "proposta.id" attribute to be set with <input type="hidden"...> instead <s:textfield...>, so when I open my jsp the "select" attribute was right populated.

Behave 3 at Firefox2.
In both cases the attribute "select" was filled by the action.

Now I'm stuck on that and asking for help for you guys.

NOTE: If just use a <s:select...> component instead <s:autocompleter...> to select the "proposta.condicaoPagamento.id" and ignoring the <s:div...> thing, it just work as should. 

Thanks and regards,

Wilson M. Penha Jr. 



  was:
I got three days running on this issue, and now I could identify what happens and when, but I could not say why?

I'm doing one app with Struts2.1.x, Spring2.5.x, Hibernate3.

I've been trying to run a autocompleter with valueNotifyTopics to another component such as <s:div and/or <s:autocompleter.

See my code:

.jsp

<s:textfield theme="simple" id="id" name="proposta.id" cssStyle="display:none"/>

<form id="formEditar">
<sx:autocompleter 
   id="condicaoPagamentoId" name="proposta.condicaoPagamento.id" 
   list="condicaoPagamentoList" keyName="proposta.condicaoPagamento.id" listKey="id"
   listValue="descricao"
   valueNotifyTopics="/condicaodepagamento"
   forceValidOption="true" />

<s:url var="getParcelas" namespace="/proposta" action="gerarParcelas">
</s:url> 
  <sx:div id="divParcelas" href="%{#getParcelas}" listenTopics="/condicaodepagamento" formId="formEditar" autoStart="true">
  </sx:div>
</form>

struts.xml

<package name="proposta" extends="struts2" namespace="/proposta">
<action name="gerarParcelas" class="propostaAction" method="gerarParcelas">
	<interceptor-ref name="defaultStack">
	<param name="validation.excludeMethods">gerarParcelas</param>
	</interceptor-ref>
	<result>/WEB-INF/jsp/proposta/parcelas.jsp</result>
</action>
</package>

Behave 1 at IE7:
When I open my jsp it isn't sending the value for "proposta.condicaoPagamento.id" to my action, it appears as null, causing an error.

Behave 2 at IE7:
I changed the "proposta.id" attribute to be set with <input type="hidden"...> instead <s:textfield...>, so when I open my jsp I got another exception before it reach the action, is was: 
java.lang.NumberFormatException: For input string: "[Ljava.lang.String;@1d1cd0d"
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Long.parseLong(Unknown Source)
	at java.lang.Long.parseLong(Unknown Source)
.....
ognl.MethodFailedException: Method "setId" failed for object scoweb.app.model.CondicaoPagamento@ed21d3 [java.lang.NoSuchMethodException: setId([Ljava.lang.String;)]
....
expr: proposta.condicaoPagamento.id val: [Ljava.lang.String;@1d1cd0d context: ognl.OgnlContext@99c60f88 root:[scoweb.app.action.PropostaAction@2a590d, com.opensymphony.xwork2.DefaultTextProvider@117ae94] value: [Ljava.lang.String;@1d1cd0d
2008-06-07 12:29:30,234 ERROR (com.opensymphony.xwork2.interceptor.ParametersInterceptor:24) - ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'proposta.condicaoPagamento.id' on 'class scoweb.app.action.PropostaAction: Error setting expression 'proposta.condicaoPagamento.id' with value '[Ljava.lang.String;@1d1cd0d'
2008-06-07 12:29:30,515 ERROR (org.apache.struts2.dispatcher.Dispatcher:28) - Could not find action or result
No result defined for action scoweb.app.action.PropostaAction and result input
	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:357)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:259)
                    .............
The attribute type for Id is set to Long

private Long Id;
setId(Long id)...
Long getId()...

Behave 3 at Firefox:
For both cases it's show the same as Behave 2 does.

I tried to change the attributes from the autocompleter to do like the showcase example, see what happens:
.jsp

<s:textfield theme="simple" id="id" name="proposta.id" cssStyle="display:none"/>

<sx:autocompleter 
  name="select" 
  list="{'fruits','colors'}" 
  value="colors"
   valueNotifyTopics="/condicaodepagamento"
   forceValidOption="true" />

<s:url var="getParcelas" namespace="/proposta" action="gerarParcelas">
</s:url> 
  <sx:div id="divParcelas" href="%{#getParcelas}" listenTopics="/condicaodepagamento" formId="formEditar" autoStart="true">
  </sx:div>

Behave 1 at IE7 

The attribute "select" appears as null into the action

Behave 2 at IE7:
I changed the "proposta.id" attribute to be set with <input type="hidden"...> instead <s:textfield...>, so when I open my jsp the "select" attribute was right populated.

Behave 3 at Firefox2.
In both cases the attribute "select" was filled by the action.

Now I'm stuck on that and asking for help for you guys.

NOTE: If just use a <s:select...> component instead <s:autocompleter...> to select the "proposta.condicaoPagamento.id" and ignoring the <s:div...> thing, it just work as should. 

Thanks and regards,

Wilson M. Penha Jr. 




> Autocomplenter don't submit the attribute value to the url action when use valueNotifyTopics.
> ---------------------------------------------------------------------------------------------
>
>                 Key: WW-2672
>                 URL: https://issues.apache.org/struts/browse/WW-2672
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Actions, Core Interceptors, Plugin - Dojo Tags
>    Affects Versions: 2.1.0, 2.1.1, 2.1.2
>         Environment: Windows Server 2003, JDK1.5.0.11, Tomcat5.5.25, IE 7 & Firefox2
>            Reporter: Wilson M Penha Jr.
>            Priority: Critical
>
> I got three days running on this issue, and now I could identify what happens and when, but I could not say why?
> I'm doing one app with Struts2.1.x, Spring2.5.x, Hibernate3.
> I've been trying to run a autocompleter with valueNotifyTopics to another component such as <s:div and/or <s:autocompleter.
> See my code:
> .jsp
> <form id="formEditar">
> <s:textfield theme="simple" id="id" name="proposta.id" cssStyle="display:none"/>
> <sx:autocompleter 
>    id="condicaoPagamentoId" name="proposta.condicaoPagamento.id" 
>    list="condicaoPagamentoList" keyName="proposta.condicaoPagamento.id" listKey="id"
>    listValue="descricao"
>    valueNotifyTopics="/condicaodepagamento"
>    forceValidOption="true" />
> <s:url var="getParcelas" namespace="/proposta" action="gerarParcelas">
> </s:url> 
>   <sx:div id="divParcelas" href="%{#getParcelas}" listenTopics="/condicaodepagamento" formId="formEditar" autoStart="true">
>   </sx:div>
> </form>
> struts.xml
> <package name="proposta" extends="struts2" namespace="/proposta">
> <action name="gerarParcelas" class="propostaAction" method="gerarParcelas">
> 	<interceptor-ref name="defaultStack">
> 	<param name="validation.excludeMethods">gerarParcelas</param>
> 	</interceptor-ref>
> 	<result>/WEB-INF/jsp/proposta/parcelas.jsp</result>
> </action>
> </package>
> Behave 1 at IE7:
> When I open my jsp it isn't sending the value for "proposta.condicaoPagamento.id" to my action, it appears as null, causing an error.
> Behave 2 at IE7:
> I changed the "proposta.id" attribute to be set with <input type="hidden"...> instead <s:textfield...>, so when I open my jsp I got another exception before it reach the action, is was: 
> java.lang.NumberFormatException: For input string: "[Ljava.lang.String;@1d1cd0d"
> 	at java.lang.NumberFormatException.forInputString(Unknown Source)
> 	at java.lang.Long.parseLong(Unknown Source)
> 	at java.lang.Long.parseLong(Unknown Source)
> .....
> ognl.MethodFailedException: Method "setId" failed for object scoweb.app.model.CondicaoPagamento@ed21d3 [java.lang.NoSuchMethodException: setId([Ljava.lang.String;)]
> ....
> expr: proposta.condicaoPagamento.id val: [Ljava.lang.String;@1d1cd0d context: ognl.OgnlContext@99c60f88 root:[scoweb.app.action.PropostaAction@2a590d, com.opensymphony.xwork2.DefaultTextProvider@117ae94] value: [Ljava.lang.String;@1d1cd0d
> 2008-06-07 12:29:30,234 ERROR (com.opensymphony.xwork2.interceptor.ParametersInterceptor:24) - ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'proposta.condicaoPagamento.id' on 'class scoweb.app.action.PropostaAction: Error setting expression 'proposta.condicaoPagamento.id' with value '[Ljava.lang.String;@1d1cd0d'
> 2008-06-07 12:29:30,515 ERROR (org.apache.struts2.dispatcher.Dispatcher:28) - Could not find action or result
> No result defined for action scoweb.app.action.PropostaAction and result input
> 	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:357)
> 	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:259)
>                     .............
> The attribute type for Id is set to Long
> private Long Id;
> setId(Long id)...
> Long getId()...
> Behave 3 at Firefox:
> For both cases it's show the same as Behave 2 does.
> I tried to change the attributes from the autocompleter to do like the showcase example, see what happens:
> .jsp
> <s:textfield theme="simple" id="id" name="proposta.id" cssStyle="display:none"/>
> <sx:autocompleter 
>   name="select" 
>   list="{'fruits','colors'}" 
>   value="colors"
>    valueNotifyTopics="/condicaodepagamento"
>    forceValidOption="true" />
> <s:url var="getParcelas" namespace="/proposta" action="gerarParcelas">
> </s:url> 
>   <sx:div id="divParcelas" href="%{#getParcelas}" listenTopics="/condicaodepagamento" formId="formEditar" autoStart="true">
>   </sx:div>
> Behave 1 at IE7 
> The attribute "select" appears as null into the action
> Behave 2 at IE7:
> I changed the "proposta.id" attribute to be set with <input type="hidden"...> instead <s:textfield...>, so when I open my jsp the "select" attribute was right populated.
> Behave 3 at Firefox2.
> In both cases the attribute "select" was filled by the action.
> Now I'm stuck on that and asking for help for you guys.
> NOTE: If just use a <s:select...> component instead <s:autocompleter...> to select the "proposta.condicaoPagamento.id" and ignoring the <s:div...> thing, it just work as should. 
> Thanks and regards,
> Wilson M. Penha Jr. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.