I have resolved this issue. But can not explain how it is fixed. :-)
Can any of the struts gurus out there shed some light on why this is so?
My struts-config.xml
<form-beans>
<form-bean name="testForm" type="mybean.TestForm" />
</form-beans>
<action-mappings>
<action path="/testPage" type="myaction.TestAction"
attribute="testForm"
scope="request"
validate="false">
<forward name="success" path="/TestForm.jsp"/>
</action>
By replacing following line
<action path="/saveTestPage" type="myaction.DummyAction"
input="/TestForm.jsp" name="testForm">
with
<action path="/saveTestPage" type="myaction.DummyAction"
input="/TestForm.jsp" name="testForm" scope="request">
</action>
</action-mappings>
I was able to get my TestForm.jsp display data and get it into edit mode. Though I am
only trying to access http://localhost/myapp/testPage.do, I am not sure why NOT HAVING
SCOPE in /saveTestPage action made it not to display data given in TestForm.
Any ideas?
>>> [EMAIL PROTECTED] 08/27/03 02:13PM >>>
All,
I am trying to get my JSP to display data from my form when in Edit mode. I am new to
Struts and using Struts 1.1
I am not sure what I am doing wrong. Any help or pointers at resources would be
appreciated.
I have included my struts-config, my jsp, my action class and my form class.
When I load my jsp, I am expecting to see "Filed1 value from action" in "field1" as
defined in the action class. However, I am seeing the default "Test Field1" as
defined in the ActionForm class.
One thing I noticed is, my form is null in action execute class and I see 'Test Form
is null. Creating new one..." in the console.
Any idea what I am doing wrong?
TIA
- Srinivas
My JSP:
<[EMAIL PROTECTED] language="java" import="mybean.*"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:form action="saveTestPage">
Field 1 : <html:text property="field1" size="15"/><br />
Field 2 : <html:text property="field2" size="15"/>
<br />
<html:submit>Submit</html:submit>
</html:form>
My Form:
private String field1;
private String field2;
public void reset(ActionMapping arg0, HttpServletRequest arg1) {
field1 = "Test Field1";
field2 = "Test Field2";
}
public String getField1() {
return field1;
}
public String getField2() {
return field2;
}
public void setField1(String field1) {
this.field1 = field1;
}
public void setField2(String field2) {
this.field2 = field2;
}
My Action:
public ActionForward execute(
ActionMapping aMapping,
ActionForm aForm,
HttpServletRequest aRequest,
HttpServletResponse aResponse) {
HttpSession session = aRequest.getSession();
if ( aForm == null ) {
System.out.println("Test Form is null. Creating new one...");
aForm = new TestForm();
}
TestForm testForm = (TestForm) aForm;
testForm.setField1("Filed1 value from action");
testForm.setField2("Field2 value from action");
if ("request".equals(aMapping.getScope())) {
aRequest.setAttribute(aMapping.getAttribute(), testForm);
}
else {
session.setAttribute(aMapping.getAttribute(), testForm);
}
return aMapping.findForward(Constants.SUCCESS);
}
My struts-config.xml
<form-beans>
<form-bean name="testForm" type="mybean.TestForm" />
</form-beans>
<action-mappings>
<action path="/testPage" type="myaction.TestAction"
attribute="testForm"
scope="request"
validate="false">
<forward name="success" path="/TestForm.jsp"/>
</action>
<action path="/saveTestPage" type="myaction.DummyAction"
input="/TestForm.jsp" name="testForm">
</action>
</action-mappings>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]