You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by ka...@elbe-net.de on 2010/04/12 13:10:54 UTC

tobago partial rendering question

Hello,

I'm trying to execute an action and partial rendering the result in an
<tx:in> field. The tx:button which calls the action and the tx:in elements
are in different forms. For some reasons after the new value is set to the
underlaying value of the tx:in field the setter of this value is called
from somewhere and overwrites the new value with an empty string.  But I
want to have the value I set with my action1 method in the field instead
an empty string. Can some one tell me what I'm doing wrong?

Thanks a lot Michael

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc" %>
<%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx" %>
<f:view locale="de">
	<tc:page width="1280" id="page">

	<f:facet name="layout">
		<tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
	</f:facet>

    <tc:form id="form1">
	<tc:box label="box1" id="box1">
		<f:facet name="layout">
			<tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
		</f:facet>
	    <tc:cell>
	    	<tx:in value="#{testController.string1}" label="string1" />
	    </tc:cell>
	    <tc:cell>
	    	<tc:button action="#{testController.action1}" label="submit1">
	    		<tc:attribute name="renderedPartially" value=":page:form2:box2"/>
	    	</tc:button>
	    </tc:cell>
	    <tc:cell/>
	</tc:box>
	</tc:form>

    <tc:form id="form2">
	<tc:box label="box2" id="box2">
		<f:facet name="layout">
			<tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
		</f:facet>
	    <tc:cell id="cell2">
	    	<tx:in value="#{testController.string2}" label="string2"  />
	    </tc:cell>
	    <tc:cell/>
	</tc:box>
	</tc:form>
	<tc:cell>
	</tc:cell>
</tc:page>
</f:view>


package test;

import java.io.File;
import java.util.Date;

import javax.faces.event.ValueChangeEvent;

import org.apache.commons.fileupload.FileItem;
import org.apache.myfaces.tobago.model.SelectItem;


public class TestController {

	private String string1;
	private String string2;

	// access methods
	public String action1()  {

		string2 = string1;

		return "success";
	}

	// Getters and Setters
	public String getString1() {
		return string1;
	}
	public void setString1(String string1) {
		this.string1 = string1;
	}
	public String getString2() {
		return string2;
	}
	public void setString2(String string2) {
		this.string2 = string2;
	}
}


Re: [TOBAGO] tobago partial rendering question

Posted by Volker Weber <v....@inexso.de>.
btw: please prefix the subject with "[TOBAGO]" for tobago related messages.



2010/4/14 Volker Weber <v....@inexso.de>:
> Hi  Michael,
>
> not a common way, but there is always something you can do :-)
>
> But how exact depends on the concrete situation.
>
> You can put a tc:command  with action 1 as facet eg. inside the box2
> and use the onclick attribute of the button:
>
> On the button in box 1 remove the actionListner and add
> onClick="Tobago.reloadComponent('page:form2:box2', 'page:form2:action1');"
>
> in box2 add a tc:command as facet:
>
> <f:facet name="action1Facet">
>  <tc:command id="action1" actionListener="#{controller.action1}">
>    <tc:attribute name="renderedPartially" value="box2"/>
>  </tc:command>
> </f:facet>
>
> but now is the box1 not processed, so you cant get the value of string1.
>
> If you need this then you can put the action facet on the surrounding panel.
>
>
> Regards,
>    Volker
>
>
>
>
> 2010/4/14 Michael Kakuschky <ka...@elbe-net.de>:
>> Hello Volker, I think I need the forms.
>>
>> I have an application which use tabs with different formulars. If I don't
>> use subforms and set the "required" attribute on some elements on one tab
>> and I want to submit a fomular on another tab it does not work because the
>> element on the other tab is not completely filled and the set require
>> attribute does not allow to submit the main form..
>>
>> That the reason I subforms. Is there another common way to solve this kind
>> of problem?
>>
>> Thanks and best regards Michael
>>
>>
>> Volker Weber schrieb:
>>>
>>> Hi Michael,
>>>
>>> after a more closer view to your jsp i found the problem.
>>>
>>> The tc:form arround the box is the probem, using subforms you are
>>> reduce the validation and modelUpdate
>>> only to the subform where the command is in, the other content is not
>>> processed and therfore the submitted values are rerenderd.
>>>
>>> did you really need the forms?
>>>
>>>
>>> Regards,
>>>    Volker
>>>
>>>
>>>
>>> 2010/4/14 Michael Kakuschky <ka...@elbe-net.de>:
>>>
>>>>
>>>> Hello Volker, thanks for the response. Yes I target the panel. I use now
>>>> actionListener and return null as return value. I also preset the value
>>>> of
>>>> string1 so that the value is always already initialized. But
>>>> nervertheless
>>>> the string2 is set to the new value (I debug that) but after rendering
>>>> the
>>>> tx:in box is still empty. Maybe you can take a look to the latest version
>>>> of
>>>> my test page and controller.
>>>>
>>>> Best regards Michael
>>>>
>>>> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
>>>> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
>>>> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc"
>>>> %>
>>>> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx"
>>>> %>
>>>> <f:view locale="de">
>>>>  <tc:page width="1280" id="page">
>>>>
>>>>  <f:facet name="layout">
>>>>      <tc:gridLayout rows="1*;fixed" columns="fixed"/>
>>>>  </f:facet>
>>>>
>>>>  <tc:panel id="panel1">
>>>>  <f:facet name="layout">
>>>>      <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>>>  </f:facet>
>>>>    <tc:form id="form1">
>>>>  <tc:box label="box1" id="box1">
>>>>      <f:facet name="layout">
>>>>          <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>>>      </f:facet>
>>>>      <tc:cell>
>>>>          <tx:in value="#{myController.string1}" label="string1" />
>>>>      </tc:cell>
>>>>      <tc:cell>
>>>>          <tc:button actionListener="#{myController.action1}"
>>>> label="submit1">
>>>>              <tc:attribute name="renderedPartially"
>>>> value=":page:panel1"/>
>>>>          </tc:button>
>>>>      </tc:cell>
>>>>      <tc:cell/>
>>>>  </tc:box>
>>>>  </tc:form>
>>>>
>>>>  <tc:form id="form2">
>>>>  <tc:box label="box2" id="box2">
>>>>      <f:facet name="layout">
>>>>          <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>>>      </f:facet>
>>>>      <tc:cell id="cell2">
>>>>          <tx:in value="#{myController.string2}" label="string2"  />
>>>>      </tc:cell>
>>>>      <tc:cell/>
>>>>  </tc:box>
>>>>  </tc:form>
>>>>
>>>>  <tc:cell/>
>>>>    </tc:panel>
>>>>    <tc:cell>
>>>>  </tc:cell>
>>>> </tc:page>
>>>> </f:view>
>>>>
>>>> package test1;
>>>>
>>>> import javax.faces.event.ActionEvent;
>>>>
>>>> public class MyController {
>>>>
>>>>  private String string1 = "99";
>>>>  private String string2;
>>>>    public String action1(ActionEvent actionEvent)
>>>>  {
>>>>      string2 = string1;
>>>>            return null;
>>>>  }
>>>>  public String getString1() {
>>>>      return string1;
>>>>  }
>>>>  public void setString1(String string1) {
>>>>      this.string1 = string1;
>>>>  }
>>>>  public String getString2() {
>>>>      return string2;
>>>>  }
>>>>  public void setString2(String string2) {
>>>>      this.string2 = string2;
>>>>  }
>>>> }
>>>>
>>>> Volker Weber schrieb:
>>>>
>>>>>
>>>>> Hi Michael,
>>>>>
>>>>> for actions used in partial rendering you should always return null!
>>>>> I the action returns a string than a full reload is made!
>>>>> I suggest using actionListener for partial actions.
>>>>>
>>>>> When rendering partially only the requested subview (plus the action
>>>>> component if outside) is processed on the server.
>>>>>
>>>>> In your example you request reload of box2, which means the content of
>>>>> box2 is processed and stored in the model.
>>>>> In the action string2 is set to string1 but string1 was not processed
>>>>> so it is still null here.
>>>>>
>>>>> Have you in helmuts example really changed the value of
>>>>> renderedPartially to the suggested panel arround both boxes?
>>>>>
>>>>>
>>>>> Regards,
>>>>>   Volker
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 2010/4/12  <ka...@elbe-net.de>:
>>>>>
>>>>>
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I'm trying to execute an action and partial rendering the result in an
>>>>>> <tx:in> field. The tx:button which calls the action and the tx:in
>>>>>> elements
>>>>>> are in different forms. For some reasons after the new value is set to
>>>>>> the
>>>>>> underlaying value of the tx:in field the setter of this value is called
>>>>>> from somewhere and overwrites the new value with an empty string.  But
>>>>>> I
>>>>>> want to have the value I set with my action1 method in the field
>>>>>> instead
>>>>>> an empty string. Can some one tell me what I'm doing wrong?
>>>>>>
>>>>>> Thanks a lot Michael
>>>>>>
>>>>>> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
>>>>>> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
>>>>>> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc"
>>>>>> %>
>>>>>> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx"
>>>>>> %>
>>>>>> <f:view locale="de">
>>>>>>      <tc:page width="1280" id="page">
>>>>>>
>>>>>>      <f:facet name="layout">
>>>>>>              <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>>>>>      </f:facet>
>>>>>>
>>>>>>  <tc:form id="form1">
>>>>>>      <tc:box label="box1" id="box1">
>>>>>>              <f:facet name="layout">
>>>>>>                      <tc:gridLayout rows="fixed;fixed;1*"
>>>>>> columns="fixed"/>
>>>>>>              </f:facet>
>>>>>>          <tc:cell>
>>>>>>              <tx:in value="#{testController.string1}" label="string1"
>>>>>> />
>>>>>>          </tc:cell>
>>>>>>          <tc:cell>
>>>>>>              <tc:button action="#{testController.action1}"
>>>>>> label="submit1">
>>>>>>                      <tc:attribute name="renderedPartially"
>>>>>> value=":page:form2:box2"/>
>>>>>>              </tc:button>
>>>>>>          </tc:cell>
>>>>>>          <tc:cell/>
>>>>>>      </tc:box>
>>>>>>      </tc:form>
>>>>>>
>>>>>>  <tc:form id="form2">
>>>>>>      <tc:box label="box2" id="box2">
>>>>>>              <f:facet name="layout">
>>>>>>                      <tc:gridLayout rows="fixed;fixed;1*"
>>>>>> columns="fixed"/>
>>>>>>              </f:facet>
>>>>>>          <tc:cell id="cell2">
>>>>>>              <tx:in value="#{testController.string2}" label="string2"
>>>>>>  />
>>>>>>          </tc:cell>
>>>>>>          <tc:cell/>
>>>>>>      </tc:box>
>>>>>>      </tc:form>
>>>>>>      <tc:cell>
>>>>>>      </tc:cell>
>>>>>> </tc:page>
>>>>>> </f:view>
>>>>>>
>>>>>>
>>>>>> package test;
>>>>>>
>>>>>> import java.io.File;
>>>>>> import java.util.Date;
>>>>>>
>>>>>> import javax.faces.event.ValueChangeEvent;
>>>>>>
>>>>>> import org.apache.commons.fileupload.FileItem;
>>>>>> import org.apache.myfaces.tobago.model.SelectItem;
>>>>>>
>>>>>>
>>>>>> public class TestController {
>>>>>>
>>>>>>      private String string1;
>>>>>>      private String string2;
>>>>>>
>>>>>>      // access methods
>>>>>>      public String action1()  {
>>>>>>
>>>>>>              string2 = string1;
>>>>>>
>>>>>>              return "success";
>>>>>>      }
>>>>>>
>>>>>>      // Getters and Setters
>>>>>>      public String getString1() {
>>>>>>              return string1;
>>>>>>      }
>>>>>>      public void setString1(String string1) {
>>>>>>              this.string1 = string1;
>>>>>>      }
>>>>>>      public String getString2() {
>>>>>>              return string2;
>>>>>>      }
>>>>>>      public void setString2(String string2) {
>>>>>>              this.string2 = string2;
>>>>>>      }
>>>>>> }
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
>
> --
> inexso - information exchange solutions GmbH
> Bismarckstraße 13      | 26122 Oldenburg
> Tel.: +49 441 4082 356 |
> FAX:  +49 441 4082 355 | www.inexso.de
>



-- 
inexso - information exchange solutions GmbH
Bismarckstraße 13      | 26122 Oldenburg
Tel.: +49 441 4082 356 |
FAX:  +49 441 4082 355 | www.inexso.de

Re: tobago partial rendering question

Posted by Volker Weber <v....@inexso.de>.
Hi  Michael,

not a common way, but there is always something you can do :-)

But how exact depends on the concrete situation.

You can put a tc:command  with action 1 as facet eg. inside the box2
and use the onclick attribute of the button:

On the button in box 1 remove the actionListner and add
onClick="Tobago.reloadComponent('page:form2:box2', 'page:form2:action1');"

in box2 add a tc:command as facet:

<f:facet name="action1Facet">
  <tc:command id="action1" actionListener="#{controller.action1}">
    <tc:attribute name="renderedPartially" value="box2"/>
 </tc:command>
</f:facet>

but now is the box1 not processed, so you cant get the value of string1.

If you need this then you can put the action facet on the surrounding panel.


Regards,
    Volker




2010/4/14 Michael Kakuschky <ka...@elbe-net.de>:
> Hello Volker, I think I need the forms.
>
> I have an application which use tabs with different formulars. If I don't
> use subforms and set the "required" attribute on some elements on one tab
> and I want to submit a fomular on another tab it does not work because the
> element on the other tab is not completely filled and the set require
> attribute does not allow to submit the main form..
>
> That the reason I subforms. Is there another common way to solve this kind
> of problem?
>
> Thanks and best regards Michael
>
>
> Volker Weber schrieb:
>>
>> Hi Michael,
>>
>> after a more closer view to your jsp i found the problem.
>>
>> The tc:form arround the box is the probem, using subforms you are
>> reduce the validation and modelUpdate
>> only to the subform where the command is in, the other content is not
>> processed and therfore the submitted values are rerenderd.
>>
>> did you really need the forms?
>>
>>
>> Regards,
>>    Volker
>>
>>
>>
>> 2010/4/14 Michael Kakuschky <ka...@elbe-net.de>:
>>
>>>
>>> Hello Volker, thanks for the response. Yes I target the panel. I use now
>>> actionListener and return null as return value. I also preset the value
>>> of
>>> string1 so that the value is always already initialized. But
>>> nervertheless
>>> the string2 is set to the new value (I debug that) but after rendering
>>> the
>>> tx:in box is still empty. Maybe you can take a look to the latest version
>>> of
>>> my test page and controller.
>>>
>>> Best regards Michael
>>>
>>> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
>>> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
>>> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc"
>>> %>
>>> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx"
>>> %>
>>> <f:view locale="de">
>>>  <tc:page width="1280" id="page">
>>>
>>>  <f:facet name="layout">
>>>      <tc:gridLayout rows="1*;fixed" columns="fixed"/>
>>>  </f:facet>
>>>
>>>  <tc:panel id="panel1">
>>>  <f:facet name="layout">
>>>      <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>>  </f:facet>
>>>    <tc:form id="form1">
>>>  <tc:box label="box1" id="box1">
>>>      <f:facet name="layout">
>>>          <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>>      </f:facet>
>>>      <tc:cell>
>>>          <tx:in value="#{myController.string1}" label="string1" />
>>>      </tc:cell>
>>>      <tc:cell>
>>>          <tc:button actionListener="#{myController.action1}"
>>> label="submit1">
>>>              <tc:attribute name="renderedPartially"
>>> value=":page:panel1"/>
>>>          </tc:button>
>>>      </tc:cell>
>>>      <tc:cell/>
>>>  </tc:box>
>>>  </tc:form>
>>>
>>>  <tc:form id="form2">
>>>  <tc:box label="box2" id="box2">
>>>      <f:facet name="layout">
>>>          <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>>      </f:facet>
>>>      <tc:cell id="cell2">
>>>          <tx:in value="#{myController.string2}" label="string2"  />
>>>      </tc:cell>
>>>      <tc:cell/>
>>>  </tc:box>
>>>  </tc:form>
>>>
>>>  <tc:cell/>
>>>    </tc:panel>
>>>    <tc:cell>
>>>  </tc:cell>
>>> </tc:page>
>>> </f:view>
>>>
>>> package test1;
>>>
>>> import javax.faces.event.ActionEvent;
>>>
>>> public class MyController {
>>>
>>>  private String string1 = "99";
>>>  private String string2;
>>>    public String action1(ActionEvent actionEvent)
>>>  {
>>>      string2 = string1;
>>>            return null;
>>>  }
>>>  public String getString1() {
>>>      return string1;
>>>  }
>>>  public void setString1(String string1) {
>>>      this.string1 = string1;
>>>  }
>>>  public String getString2() {
>>>      return string2;
>>>  }
>>>  public void setString2(String string2) {
>>>      this.string2 = string2;
>>>  }
>>> }
>>>
>>> Volker Weber schrieb:
>>>
>>>>
>>>> Hi Michael,
>>>>
>>>> for actions used in partial rendering you should always return null!
>>>> I the action returns a string than a full reload is made!
>>>> I suggest using actionListener for partial actions.
>>>>
>>>> When rendering partially only the requested subview (plus the action
>>>> component if outside) is processed on the server.
>>>>
>>>> In your example you request reload of box2, which means the content of
>>>> box2 is processed and stored in the model.
>>>> In the action string2 is set to string1 but string1 was not processed
>>>> so it is still null here.
>>>>
>>>> Have you in helmuts example really changed the value of
>>>> renderedPartially to the suggested panel arround both boxes?
>>>>
>>>>
>>>> Regards,
>>>>   Volker
>>>>
>>>>
>>>>
>>>>
>>>> 2010/4/12  <ka...@elbe-net.de>:
>>>>
>>>>
>>>>>
>>>>> Hello,
>>>>>
>>>>> I'm trying to execute an action and partial rendering the result in an
>>>>> <tx:in> field. The tx:button which calls the action and the tx:in
>>>>> elements
>>>>> are in different forms. For some reasons after the new value is set to
>>>>> the
>>>>> underlaying value of the tx:in field the setter of this value is called
>>>>> from somewhere and overwrites the new value with an empty string.  But
>>>>> I
>>>>> want to have the value I set with my action1 method in the field
>>>>> instead
>>>>> an empty string. Can some one tell me what I'm doing wrong?
>>>>>
>>>>> Thanks a lot Michael
>>>>>
>>>>> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
>>>>> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
>>>>> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc"
>>>>> %>
>>>>> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx"
>>>>> %>
>>>>> <f:view locale="de">
>>>>>      <tc:page width="1280" id="page">
>>>>>
>>>>>      <f:facet name="layout">
>>>>>              <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>>>>      </f:facet>
>>>>>
>>>>>  <tc:form id="form1">
>>>>>      <tc:box label="box1" id="box1">
>>>>>              <f:facet name="layout">
>>>>>                      <tc:gridLayout rows="fixed;fixed;1*"
>>>>> columns="fixed"/>
>>>>>              </f:facet>
>>>>>          <tc:cell>
>>>>>              <tx:in value="#{testController.string1}" label="string1"
>>>>> />
>>>>>          </tc:cell>
>>>>>          <tc:cell>
>>>>>              <tc:button action="#{testController.action1}"
>>>>> label="submit1">
>>>>>                      <tc:attribute name="renderedPartially"
>>>>> value=":page:form2:box2"/>
>>>>>              </tc:button>
>>>>>          </tc:cell>
>>>>>          <tc:cell/>
>>>>>      </tc:box>
>>>>>      </tc:form>
>>>>>
>>>>>  <tc:form id="form2">
>>>>>      <tc:box label="box2" id="box2">
>>>>>              <f:facet name="layout">
>>>>>                      <tc:gridLayout rows="fixed;fixed;1*"
>>>>> columns="fixed"/>
>>>>>              </f:facet>
>>>>>          <tc:cell id="cell2">
>>>>>              <tx:in value="#{testController.string2}" label="string2"
>>>>>  />
>>>>>          </tc:cell>
>>>>>          <tc:cell/>
>>>>>      </tc:box>
>>>>>      </tc:form>
>>>>>      <tc:cell>
>>>>>      </tc:cell>
>>>>> </tc:page>
>>>>> </f:view>
>>>>>
>>>>>
>>>>> package test;
>>>>>
>>>>> import java.io.File;
>>>>> import java.util.Date;
>>>>>
>>>>> import javax.faces.event.ValueChangeEvent;
>>>>>
>>>>> import org.apache.commons.fileupload.FileItem;
>>>>> import org.apache.myfaces.tobago.model.SelectItem;
>>>>>
>>>>>
>>>>> public class TestController {
>>>>>
>>>>>      private String string1;
>>>>>      private String string2;
>>>>>
>>>>>      // access methods
>>>>>      public String action1()  {
>>>>>
>>>>>              string2 = string1;
>>>>>
>>>>>              return "success";
>>>>>      }
>>>>>
>>>>>      // Getters and Setters
>>>>>      public String getString1() {
>>>>>              return string1;
>>>>>      }
>>>>>      public void setString1(String string1) {
>>>>>              this.string1 = string1;
>>>>>      }
>>>>>      public String getString2() {
>>>>>              return string2;
>>>>>      }
>>>>>      public void setString2(String string2) {
>>>>>              this.string2 = string2;
>>>>>      }
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>>
>
>



-- 
inexso - information exchange solutions GmbH
Bismarckstraße 13      | 26122 Oldenburg
Tel.: +49 441 4082 356 |
FAX:  +49 441 4082 355 | www.inexso.de

Re: tobago partial rendering question

Posted by Michael Kakuschky <ka...@elbe-net.de>.
Hello Volker, I think I need the forms.

I have an application which use tabs with different formulars. If I 
don't use subforms and set the "required" attribute on some elements on 
one tab and I want to submit a fomular on another tab it does not work 
because the element on the other tab is not completely filled and the 
set require attribute does not allow to submit the main form..

That the reason I subforms. Is there another common way to solve this 
kind of problem?

Thanks and best regards Michael


Volker Weber schrieb:
> Hi Michael,
>
> after a more closer view to your jsp i found the problem.
>
> The tc:form arround the box is the probem, using subforms you are
> reduce the validation and modelUpdate
> only to the subform where the command is in, the other content is not
> processed and therfore the submitted values are rerenderd.
>
> did you really need the forms?
>
>
> Regards,
>     Volker
>
>
>
> 2010/4/14 Michael Kakuschky <ka...@elbe-net.de>:
>   
>> Hello Volker, thanks for the response. Yes I target the panel. I use now
>> actionListener and return null as return value. I also preset the value of
>> string1 so that the value is always already initialized. But nervertheless
>> the string2 is set to the new value (I debug that) but after rendering the
>> tx:in box is still empty. Maybe you can take a look to the latest version of
>> my test page and controller.
>>
>> Best regards Michael
>>
>> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
>> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
>> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc" %>
>> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx" %>
>> <f:view locale="de">
>>   <tc:page width="1280" id="page">
>>
>>   <f:facet name="layout">
>>       <tc:gridLayout rows="1*;fixed" columns="fixed"/>
>>   </f:facet>
>>
>>   <tc:panel id="panel1">
>>   <f:facet name="layout">
>>       <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>   </f:facet>
>>     <tc:form id="form1">
>>   <tc:box label="box1" id="box1">
>>       <f:facet name="layout">
>>           <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>       </f:facet>
>>       <tc:cell>
>>           <tx:in value="#{myController.string1}" label="string1" />
>>       </tc:cell>
>>       <tc:cell>
>>           <tc:button actionListener="#{myController.action1}"
>> label="submit1">
>>               <tc:attribute name="renderedPartially" value=":page:panel1"/>
>>           </tc:button>
>>       </tc:cell>
>>       <tc:cell/>
>>   </tc:box>
>>   </tc:form>
>>
>>   <tc:form id="form2">
>>   <tc:box label="box2" id="box2">
>>       <f:facet name="layout">
>>           <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>       </f:facet>
>>       <tc:cell id="cell2">
>>           <tx:in value="#{myController.string2}" label="string2"  />
>>       </tc:cell>
>>       <tc:cell/>
>>   </tc:box>
>>   </tc:form>
>>
>>   <tc:cell/>
>>     </tc:panel>
>>     <tc:cell>
>>   </tc:cell>
>> </tc:page>
>> </f:view>
>>
>> package test1;
>>
>> import javax.faces.event.ActionEvent;
>>
>> public class MyController {
>>
>>   private String string1 = "99";
>>   private String string2;
>>     public String action1(ActionEvent actionEvent)
>>   {
>>       string2 = string1;
>>             return null;
>>   }
>>   public String getString1() {
>>       return string1;
>>   }
>>   public void setString1(String string1) {
>>       this.string1 = string1;
>>   }
>>   public String getString2() {
>>       return string2;
>>   }
>>   public void setString2(String string2) {
>>       this.string2 = string2;
>>   }
>> }
>>
>> Volker Weber schrieb:
>>     
>>> Hi Michael,
>>>
>>> for actions used in partial rendering you should always return null!
>>> I the action returns a string than a full reload is made!
>>> I suggest using actionListener for partial actions.
>>>
>>> When rendering partially only the requested subview (plus the action
>>> component if outside) is processed on the server.
>>>
>>> In your example you request reload of box2, which means the content of
>>> box2 is processed and stored in the model.
>>> In the action string2 is set to string1 but string1 was not processed
>>> so it is still null here.
>>>
>>> Have you in helmuts example really changed the value of
>>> renderedPartially to the suggested panel arround both boxes?
>>>
>>>
>>> Regards,
>>>    Volker
>>>
>>>
>>>
>>>
>>> 2010/4/12  <ka...@elbe-net.de>:
>>>
>>>       
>>>> Hello,
>>>>
>>>> I'm trying to execute an action and partial rendering the result in an
>>>> <tx:in> field. The tx:button which calls the action and the tx:in
>>>> elements
>>>> are in different forms. For some reasons after the new value is set to
>>>> the
>>>> underlaying value of the tx:in field the setter of this value is called
>>>> from somewhere and overwrites the new value with an empty string.  But I
>>>> want to have the value I set with my action1 method in the field instead
>>>> an empty string. Can some one tell me what I'm doing wrong?
>>>>
>>>> Thanks a lot Michael
>>>>
>>>> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
>>>> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
>>>> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc"
>>>> %>
>>>> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx"
>>>> %>
>>>> <f:view locale="de">
>>>>       <tc:page width="1280" id="page">
>>>>
>>>>       <f:facet name="layout">
>>>>               <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>>>       </f:facet>
>>>>
>>>>   <tc:form id="form1">
>>>>       <tc:box label="box1" id="box1">
>>>>               <f:facet name="layout">
>>>>                       <tc:gridLayout rows="fixed;fixed;1*"
>>>> columns="fixed"/>
>>>>               </f:facet>
>>>>           <tc:cell>
>>>>               <tx:in value="#{testController.string1}" label="string1" />
>>>>           </tc:cell>
>>>>           <tc:cell>
>>>>               <tc:button action="#{testController.action1}"
>>>> label="submit1">
>>>>                       <tc:attribute name="renderedPartially"
>>>> value=":page:form2:box2"/>
>>>>               </tc:button>
>>>>           </tc:cell>
>>>>           <tc:cell/>
>>>>       </tc:box>
>>>>       </tc:form>
>>>>
>>>>   <tc:form id="form2">
>>>>       <tc:box label="box2" id="box2">
>>>>               <f:facet name="layout">
>>>>                       <tc:gridLayout rows="fixed;fixed;1*"
>>>> columns="fixed"/>
>>>>               </f:facet>
>>>>           <tc:cell id="cell2">
>>>>               <tx:in value="#{testController.string2}" label="string2"
>>>>  />
>>>>           </tc:cell>
>>>>           <tc:cell/>
>>>>       </tc:box>
>>>>       </tc:form>
>>>>       <tc:cell>
>>>>       </tc:cell>
>>>> </tc:page>
>>>> </f:view>
>>>>
>>>>
>>>> package test;
>>>>
>>>> import java.io.File;
>>>> import java.util.Date;
>>>>
>>>> import javax.faces.event.ValueChangeEvent;
>>>>
>>>> import org.apache.commons.fileupload.FileItem;
>>>> import org.apache.myfaces.tobago.model.SelectItem;
>>>>
>>>>
>>>> public class TestController {
>>>>
>>>>       private String string1;
>>>>       private String string2;
>>>>
>>>>       // access methods
>>>>       public String action1()  {
>>>>
>>>>               string2 = string1;
>>>>
>>>>               return "success";
>>>>       }
>>>>
>>>>       // Getters and Setters
>>>>       public String getString1() {
>>>>               return string1;
>>>>       }
>>>>       public void setString1(String string1) {
>>>>               this.string1 = string1;
>>>>       }
>>>>       public String getString2() {
>>>>               return string2;
>>>>       }
>>>>       public void setString2(String string2) {
>>>>               this.string2 = string2;
>>>>       }
>>>> }
>>>>
>>>>
>>>>
>>>>         
>>>
>>>
>>>       
>>     
>
>
>
>   


Re: tobago partial rendering question

Posted by Volker Weber <v....@inexso.de>.
Hi Michael,

after a more closer view to your jsp i found the problem.

The tc:form arround the box is the probem, using subforms you are
reduce the validation and modelUpdate
only to the subform where the command is in, the other content is not
processed and therfore the submitted values are rerenderd.

did you really need the forms?


Regards,
    Volker



2010/4/14 Michael Kakuschky <ka...@elbe-net.de>:
> Hello Volker, thanks for the response. Yes I target the panel. I use now
> actionListener and return null as return value. I also preset the value of
> string1 so that the value is always already initialized. But nervertheless
> the string2 is set to the new value (I debug that) but after rendering the
> tx:in box is still empty. Maybe you can take a look to the latest version of
> my test page and controller.
>
> Best regards Michael
>
> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc" %>
> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx" %>
> <f:view locale="de">
>   <tc:page width="1280" id="page">
>
>   <f:facet name="layout">
>       <tc:gridLayout rows="1*;fixed" columns="fixed"/>
>   </f:facet>
>
>   <tc:panel id="panel1">
>   <f:facet name="layout">
>       <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>   </f:facet>
>     <tc:form id="form1">
>   <tc:box label="box1" id="box1">
>       <f:facet name="layout">
>           <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>       </f:facet>
>       <tc:cell>
>           <tx:in value="#{myController.string1}" label="string1" />
>       </tc:cell>
>       <tc:cell>
>           <tc:button actionListener="#{myController.action1}"
> label="submit1">
>               <tc:attribute name="renderedPartially" value=":page:panel1"/>
>           </tc:button>
>       </tc:cell>
>       <tc:cell/>
>   </tc:box>
>   </tc:form>
>
>   <tc:form id="form2">
>   <tc:box label="box2" id="box2">
>       <f:facet name="layout">
>           <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>       </f:facet>
>       <tc:cell id="cell2">
>           <tx:in value="#{myController.string2}" label="string2"  />
>       </tc:cell>
>       <tc:cell/>
>   </tc:box>
>   </tc:form>
>
>   <tc:cell/>
>     </tc:panel>
>     <tc:cell>
>   </tc:cell>
> </tc:page>
> </f:view>
>
> package test1;
>
> import javax.faces.event.ActionEvent;
>
> public class MyController {
>
>   private String string1 = "99";
>   private String string2;
>     public String action1(ActionEvent actionEvent)
>   {
>       string2 = string1;
>             return null;
>   }
>   public String getString1() {
>       return string1;
>   }
>   public void setString1(String string1) {
>       this.string1 = string1;
>   }
>   public String getString2() {
>       return string2;
>   }
>   public void setString2(String string2) {
>       this.string2 = string2;
>   }
> }
>
> Volker Weber schrieb:
>>
>> Hi Michael,
>>
>> for actions used in partial rendering you should always return null!
>> I the action returns a string than a full reload is made!
>> I suggest using actionListener for partial actions.
>>
>> When rendering partially only the requested subview (plus the action
>> component if outside) is processed on the server.
>>
>> In your example you request reload of box2, which means the content of
>> box2 is processed and stored in the model.
>> In the action string2 is set to string1 but string1 was not processed
>> so it is still null here.
>>
>> Have you in helmuts example really changed the value of
>> renderedPartially to the suggested panel arround both boxes?
>>
>>
>> Regards,
>>    Volker
>>
>>
>>
>>
>> 2010/4/12  <ka...@elbe-net.de>:
>>
>>>
>>> Hello,
>>>
>>> I'm trying to execute an action and partial rendering the result in an
>>> <tx:in> field. The tx:button which calls the action and the tx:in
>>> elements
>>> are in different forms. For some reasons after the new value is set to
>>> the
>>> underlaying value of the tx:in field the setter of this value is called
>>> from somewhere and overwrites the new value with an empty string.  But I
>>> want to have the value I set with my action1 method in the field instead
>>> an empty string. Can some one tell me what I'm doing wrong?
>>>
>>> Thanks a lot Michael
>>>
>>> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
>>> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
>>> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc"
>>> %>
>>> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx"
>>> %>
>>> <f:view locale="de">
>>>       <tc:page width="1280" id="page">
>>>
>>>       <f:facet name="layout">
>>>               <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>>       </f:facet>
>>>
>>>   <tc:form id="form1">
>>>       <tc:box label="box1" id="box1">
>>>               <f:facet name="layout">
>>>                       <tc:gridLayout rows="fixed;fixed;1*"
>>> columns="fixed"/>
>>>               </f:facet>
>>>           <tc:cell>
>>>               <tx:in value="#{testController.string1}" label="string1" />
>>>           </tc:cell>
>>>           <tc:cell>
>>>               <tc:button action="#{testController.action1}"
>>> label="submit1">
>>>                       <tc:attribute name="renderedPartially"
>>> value=":page:form2:box2"/>
>>>               </tc:button>
>>>           </tc:cell>
>>>           <tc:cell/>
>>>       </tc:box>
>>>       </tc:form>
>>>
>>>   <tc:form id="form2">
>>>       <tc:box label="box2" id="box2">
>>>               <f:facet name="layout">
>>>                       <tc:gridLayout rows="fixed;fixed;1*"
>>> columns="fixed"/>
>>>               </f:facet>
>>>           <tc:cell id="cell2">
>>>               <tx:in value="#{testController.string2}" label="string2"
>>>  />
>>>           </tc:cell>
>>>           <tc:cell/>
>>>       </tc:box>
>>>       </tc:form>
>>>       <tc:cell>
>>>       </tc:cell>
>>> </tc:page>
>>> </f:view>
>>>
>>>
>>> package test;
>>>
>>> import java.io.File;
>>> import java.util.Date;
>>>
>>> import javax.faces.event.ValueChangeEvent;
>>>
>>> import org.apache.commons.fileupload.FileItem;
>>> import org.apache.myfaces.tobago.model.SelectItem;
>>>
>>>
>>> public class TestController {
>>>
>>>       private String string1;
>>>       private String string2;
>>>
>>>       // access methods
>>>       public String action1()  {
>>>
>>>               string2 = string1;
>>>
>>>               return "success";
>>>       }
>>>
>>>       // Getters and Setters
>>>       public String getString1() {
>>>               return string1;
>>>       }
>>>       public void setString1(String string1) {
>>>               this.string1 = string1;
>>>       }
>>>       public String getString2() {
>>>               return string2;
>>>       }
>>>       public void setString2(String string2) {
>>>               this.string2 = string2;
>>>       }
>>> }
>>>
>>>
>>>
>>
>>
>>
>>
>
>



-- 
inexso - information exchange solutions GmbH
Bismarckstraße 13      | 26122 Oldenburg
Tel.: +49 441 4082 356 |
FAX:  +49 441 4082 355 | www.inexso.de

Re: tobago partial rendering question

Posted by Michael Kakuschky <ka...@elbe-net.de>.
Hello Volker, thanks for the response. Yes I target the panel. I use now 
actionListener and return null as return value. I also preset the value 
of string1 so that the value is always already initialized. But 
nervertheless the string2 is set to the new value (I debug that) but 
after rendering the tx:in box is still empty. Maybe you can take a look 
to the latest version of my test page and controller.

Best regards Michael

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc" %>
<%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx" %>
<f:view locale="de">
    <tc:page width="1280" id="page">

    <f:facet name="layout">
        <tc:gridLayout rows="1*;fixed" columns="fixed"/>
    </f:facet>

    <tc:panel id="panel1">
    <f:facet name="layout">
        <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
    </f:facet>
   
    <tc:form id="form1">
    <tc:box label="box1" id="box1">
        <f:facet name="layout">
            <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
        </f:facet>
        <tc:cell>
            <tx:in value="#{myController.string1}" label="string1" />
        </tc:cell>
        <tc:cell>
            <tc:button actionListener="#{myController.action1}" 
label="submit1">
                <tc:attribute name="renderedPartially" 
value=":page:panel1"/>
            </tc:button>
        </tc:cell>
        <tc:cell/>
    </tc:box>
    </tc:form>

    <tc:form id="form2">
    <tc:box label="box2" id="box2">
        <f:facet name="layout">
            <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
        </f:facet>
        <tc:cell id="cell2">
            <tx:in value="#{myController.string2}" label="string2"  />
        </tc:cell>
        <tc:cell/>
    </tc:box>
    </tc:form>

    <tc:cell/>
   
    </tc:panel>
   
    <tc:cell>
    </tc:cell>
</tc:page>
</f:view>

package test1;

import javax.faces.event.ActionEvent;

public class MyController {

    private String string1 = "99";
    private String string2;
   
    public String action1(ActionEvent actionEvent)
    {
        string2 = string1;
       
        return null;
    }
    public String getString1() {
        return string1;
    }
    public void setString1(String string1) {
        this.string1 = string1;
    }
    public String getString2() {
        return string2;
    }
    public void setString2(String string2) {
        this.string2 = string2;
    }
}

Volker Weber schrieb:
> Hi Michael,
>
> for actions used in partial rendering you should always return null!
> I the action returns a string than a full reload is made!
> I suggest using actionListener for partial actions.
>
> When rendering partially only the requested subview (plus the action
> component if outside) is processed on the server.
>
> In your example you request reload of box2, which means the content of
> box2 is processed and stored in the model.
> In the action string2 is set to string1 but string1 was not processed
> so it is still null here.
>
> Have you in helmuts example really changed the value of
> renderedPartially to the suggested panel arround both boxes?
>
>
> Regards,
>     Volker
>
>
>
>
> 2010/4/12  <ka...@elbe-net.de>:
>   
>> Hello,
>>
>> I'm trying to execute an action and partial rendering the result in an
>> <tx:in> field. The tx:button which calls the action and the tx:in elements
>> are in different forms. For some reasons after the new value is set to the
>> underlaying value of the tx:in field the setter of this value is called
>> from somewhere and overwrites the new value with an empty string.  But I
>> want to have the value I set with my action1 method in the field instead
>> an empty string. Can some one tell me what I'm doing wrong?
>>
>> Thanks a lot Michael
>>
>> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
>> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
>> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc" %>
>> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx" %>
>> <f:view locale="de">
>>        <tc:page width="1280" id="page">
>>
>>        <f:facet name="layout">
>>                <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>        </f:facet>
>>
>>    <tc:form id="form1">
>>        <tc:box label="box1" id="box1">
>>                <f:facet name="layout">
>>                        <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>                </f:facet>
>>            <tc:cell>
>>                <tx:in value="#{testController.string1}" label="string1" />
>>            </tc:cell>
>>            <tc:cell>
>>                <tc:button action="#{testController.action1}" label="submit1">
>>                        <tc:attribute name="renderedPartially" value=":page:form2:box2"/>
>>                </tc:button>
>>            </tc:cell>
>>            <tc:cell/>
>>        </tc:box>
>>        </tc:form>
>>
>>    <tc:form id="form2">
>>        <tc:box label="box2" id="box2">
>>                <f:facet name="layout">
>>                        <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>>                </f:facet>
>>            <tc:cell id="cell2">
>>                <tx:in value="#{testController.string2}" label="string2"  />
>>            </tc:cell>
>>            <tc:cell/>
>>        </tc:box>
>>        </tc:form>
>>        <tc:cell>
>>        </tc:cell>
>> </tc:page>
>> </f:view>
>>
>>
>> package test;
>>
>> import java.io.File;
>> import java.util.Date;
>>
>> import javax.faces.event.ValueChangeEvent;
>>
>> import org.apache.commons.fileupload.FileItem;
>> import org.apache.myfaces.tobago.model.SelectItem;
>>
>>
>> public class TestController {
>>
>>        private String string1;
>>        private String string2;
>>
>>        // access methods
>>        public String action1()  {
>>
>>                string2 = string1;
>>
>>                return "success";
>>        }
>>
>>        // Getters and Setters
>>        public String getString1() {
>>                return string1;
>>        }
>>        public void setString1(String string1) {
>>                this.string1 = string1;
>>        }
>>        public String getString2() {
>>                return string2;
>>        }
>>        public void setString2(String string2) {
>>                this.string2 = string2;
>>        }
>> }
>>
>>
>>     
>
>
>
>   


Re: tobago partial rendering question

Posted by Volker Weber <v....@inexso.de>.
Hi Michael,

for actions used in partial rendering you should always return null!
I the action returns a string than a full reload is made!
I suggest using actionListener for partial actions.

When rendering partially only the requested subview (plus the action
component if outside) is processed on the server.

In your example you request reload of box2, which means the content of
box2 is processed and stored in the model.
In the action string2 is set to string1 but string1 was not processed
so it is still null here.

Have you in helmuts example really changed the value of
renderedPartially to the suggested panel arround both boxes?


Regards,
    Volker




2010/4/12  <ka...@elbe-net.de>:
> Hello,
>
> I'm trying to execute an action and partial rendering the result in an
> <tx:in> field. The tx:button which calls the action and the tx:in elements
> are in different forms. For some reasons after the new value is set to the
> underlaying value of the tx:in field the setter of this value is called
> from somewhere and overwrites the new value with an empty string.  But I
> want to have the value I set with my action1 method in the field instead
> an empty string. Can some one tell me what I'm doing wrong?
>
> Thanks a lot Michael
>
> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc" %>
> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx" %>
> <f:view locale="de">
>        <tc:page width="1280" id="page">
>
>        <f:facet name="layout">
>                <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>        </f:facet>
>
>    <tc:form id="form1">
>        <tc:box label="box1" id="box1">
>                <f:facet name="layout">
>                        <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>                </f:facet>
>            <tc:cell>
>                <tx:in value="#{testController.string1}" label="string1" />
>            </tc:cell>
>            <tc:cell>
>                <tc:button action="#{testController.action1}" label="submit1">
>                        <tc:attribute name="renderedPartially" value=":page:form2:box2"/>
>                </tc:button>
>            </tc:cell>
>            <tc:cell/>
>        </tc:box>
>        </tc:form>
>
>    <tc:form id="form2">
>        <tc:box label="box2" id="box2">
>                <f:facet name="layout">
>                        <tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>                </f:facet>
>            <tc:cell id="cell2">
>                <tx:in value="#{testController.string2}" label="string2"  />
>            </tc:cell>
>            <tc:cell/>
>        </tc:box>
>        </tc:form>
>        <tc:cell>
>        </tc:cell>
> </tc:page>
> </f:view>
>
>
> package test;
>
> import java.io.File;
> import java.util.Date;
>
> import javax.faces.event.ValueChangeEvent;
>
> import org.apache.commons.fileupload.FileItem;
> import org.apache.myfaces.tobago.model.SelectItem;
>
>
> public class TestController {
>
>        private String string1;
>        private String string2;
>
>        // access methods
>        public String action1()  {
>
>                string2 = string1;
>
>                return "success";
>        }
>
>        // Getters and Setters
>        public String getString1() {
>                return string1;
>        }
>        public void setString1(String string1) {
>                this.string1 = string1;
>        }
>        public String getString2() {
>                return string2;
>        }
>        public void setString2(String string2) {
>                this.string2 = string2;
>        }
> }
>
>



-- 
inexso - information exchange solutions GmbH
Bismarckstraße 13      | 26122 Oldenburg
Tel.: +49 441 4082 356 |
FAX:  +49 441 4082 355 | www.inexso.de

Facing error in IE7

Posted by Ni...@cognizant.com.
Hi,

	I'm getting the following error when I try to access my existing
application in the IE7.

=====================
11:18:03,671 ERROR [[ACTIVE] ExecuteThread: '4' for queue:
'weblogic.kernel.Default (self-tuning)']
org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlMessageRendererBas
e - Could not render Message. Un
able to find component 'dateValue' (calling findComponent on component
'DMForm:subView_DMScreens:dm_search:_idJsp113'). If the provided id was
correct, wrap the message and its component into an h:panelGroup or
h:panelGrid.
=======================================

I'm using 
Weblogic 10.3, 
Myfaces1.1.5, 
tomahawk-1.1.5-SNAPSHOT,
tomahawk-sandbox-1.1.5-SNAPSHOT, 
richfaces-3.0.1-SNAPSHOT, 
ajax4jsf-1.1.1-SNAPSHOT.


Pls assist on the above problem.

Thanks,
Nila

This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information.
If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message.
Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this email or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful.

Re: tobago partial rendering question

Posted by ka...@elbe-net.de.
Thanks for the tip, but the panel around did not help. Even with the panel
around the forms the value I set in the action method is overwritten with
the prior content of the UI Component. Any other ideas?

Regards Michael
> Hi,
>
> I haven't used more than one form so far, but I think both forms (or
> boxes) must
> be reloaded (rendered partially). Try to enclose both forms in a extra
> panel and
> reload this panel (<tc:attribute name="renderedPartially"
> value=":page:panel"/>)
>
> Regards
> Helmut
>
>
> Am 12.04.2010 13:10, schrieb kakuschky@elbe-net.de:
>> Hello,
>>
>> I'm trying to execute an action and partial rendering the result in an
>> <tx:in>  field. The tx:button which calls the action and the tx:in
>> elements
>> are in different forms. For some reasons after the new value is set to
>> the
>> underlaying value of the tx:in field the setter of this value is called
>> from somewhere and overwrites the new value with an empty string.  But I
>> want to have the value I set with my action1 method in the field instead
>> an empty string. Can some one tell me what I'm doing wrong?
>>
>> Thanks a lot Michael
>>
>> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
>> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
>> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc"
>> %>
>> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx"
>> %>
>> <f:view locale="de">
>> 	<tc:page width="1280" id="page">
>>
>> 	<f:facet name="layout">
>> 		<tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>> 	</f:facet>
>>
>>      <tc:form id="form1">
>> 	<tc:box label="box1" id="box1">
>> 		<f:facet name="layout">
>> 			<tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>> 		</f:facet>
>> 	<tc:cell>
>> 	    	<tx:in value="#{testController.string1}" label="string1" />
>> 	</tc:cell>
>> 	<tc:cell>
>> 	    	<tc:button action="#{testController.action1}" label="submit1">
>> 	    		<tc:attribute name="renderedPartially" value=":page:form2:box2"/>
>> 	    	</tc:button>
>> 	</tc:cell>
>> 	<tc:cell/>
>> 	</tc:box>
>> 	</tc:form>
>>
>>      <tc:form id="form2">
>> 	<tc:box label="box2" id="box2">
>> 		<f:facet name="layout">
>> 			<tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
>> 		</f:facet>
>> 	<tc:cell id="cell2">
>> 	    	<tx:in value="#{testController.string2}" label="string2"  />
>> 	</tc:cell>
>> 	<tc:cell/>
>> 	</tc:box>
>> 	</tc:form>
>> 	<tc:cell>
>> 	</tc:cell>
>> </tc:page>
>> </f:view>
>>
>>
>> package test;
>>
>> import java.io.File;
>> import java.util.Date;
>>
>> import javax.faces.event.ValueChangeEvent;
>>
>> import org.apache.commons.fileupload.FileItem;
>> import org.apache.myfaces.tobago.model.SelectItem;
>>
>>
>> public class TestController {
>>
>> 	private String string1;
>> 	private String string2;
>>
>> 	// access methods
>> 	public String action1()  {
>>
>> 		string2 = string1;
>>
>> 		return "success";
>> 	}
>>
>> 	// Getters and Setters
>> 	public String getString1() {
>> 		return string1;
>> 	}
>> 	public void setString1(String string1) {
>> 		this.string1 = string1;
>> 	}
>> 	public String getString2() {
>> 		return string2;
>> 	}
>> 	public void setString2(String string2) {
>> 		this.string2 = string2;
>> 	}
>> }
>>
>



Re: tobago partial rendering question

Posted by Helmut Swaczinna <my...@wlp-systems.de>.
Hi,

I haven't used more than one form so far, but I think both forms (or boxes) must 
be reloaded (rendered partially). Try to enclose both forms in a extra panel and 
reload this panel (<tc:attribute name="renderedPartially" value=":page:panel"/>)

Regards
Helmut


Am 12.04.2010 13:10, schrieb kakuschky@elbe-net.de:
> Hello,
>
> I'm trying to execute an action and partial rendering the result in an
> <tx:in>  field. The tx:button which calls the action and the tx:in elements
> are in different forms. For some reasons after the new value is set to the
> underlaying value of the tx:in field the setter of this value is called
> from somewhere and overwrites the new value with an empty string.  But I
> want to have the value I set with my action1 method in the field instead
> an empty string. Can some one tell me what I'm doing wrong?
>
> Thanks a lot Michael
>
> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
> <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc" %>
> <%@ taglib uri="http://myfaces.apache.org/tobago/extension" prefix="tx" %>
> <f:view locale="de">
> 	<tc:page width="1280" id="page">
>
> 	<f:facet name="layout">
> 		<tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
> 	</f:facet>
>
>      <tc:form id="form1">
> 	<tc:box label="box1" id="box1">
> 		<f:facet name="layout">
> 			<tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
> 		</f:facet>
> 	<tc:cell>
> 	    	<tx:in value="#{testController.string1}" label="string1" />
> 	</tc:cell>
> 	<tc:cell>
> 	    	<tc:button action="#{testController.action1}" label="submit1">
> 	    		<tc:attribute name="renderedPartially" value=":page:form2:box2"/>
> 	    	</tc:button>
> 	</tc:cell>
> 	<tc:cell/>
> 	</tc:box>
> 	</tc:form>
>
>      <tc:form id="form2">
> 	<tc:box label="box2" id="box2">
> 		<f:facet name="layout">
> 			<tc:gridLayout rows="fixed;fixed;1*" columns="fixed"/>
> 		</f:facet>
> 	<tc:cell id="cell2">
> 	    	<tx:in value="#{testController.string2}" label="string2"  />
> 	</tc:cell>
> 	<tc:cell/>
> 	</tc:box>
> 	</tc:form>
> 	<tc:cell>
> 	</tc:cell>
> </tc:page>
> </f:view>
>
>
> package test;
>
> import java.io.File;
> import java.util.Date;
>
> import javax.faces.event.ValueChangeEvent;
>
> import org.apache.commons.fileupload.FileItem;
> import org.apache.myfaces.tobago.model.SelectItem;
>
>
> public class TestController {
>
> 	private String string1;
> 	private String string2;
>
> 	// access methods
> 	public String action1()  {
>
> 		string2 = string1;
>
> 		return "success";
> 	}
>
> 	// Getters and Setters
> 	public String getString1() {
> 		return string1;
> 	}
> 	public void setString1(String string1) {
> 		this.string1 = string1;
> 	}
> 	public String getString2() {
> 		return string2;
> 	}
> 	public void setString2(String string2) {
> 		this.string2 = string2;
> 	}
> }
>