Action内容如下:public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
/**@todo: complete the business logic here, this is just a skeleton.*/
CreateDogForm createDogForm = (CreateDogForm) actionForm;
String flag = httpServletRequest.getParameter("flag");
String[] chk = httpServletRequest.getParameterValues("chk"); if(flag==null)
{
return actionMapping.findForward("show");
}else if(flag.equals("insert"))
{
System.out.println("insert");
Dog dog = new Dog();
try {
dog.insertM(createDogForm);
}
catch (SQLException ex) {
}
catch (Exception ex) {
}
return actionMapping.findForward("show");
}else if(flag.equals("goupdate"))
{
Dog d = new Dog();
Vector v = d.selectM("and id="+chk[0]);
createDogForm = (CreateDogForm)v.elementAt(0);
return actionMapping.findForward("add");
}else if(flag.equals("goinsert"))
{
System.out.println("goInsert");
createDogForm = new CreateDogForm();
System.out.println(createDogForm.getName());
return actionMapping.findForward("add");
} return actionMapping.findForward("show");
// }
}
/**@todo: complete the business logic here, this is just a skeleton.*/
CreateDogForm createDogForm = (CreateDogForm) actionForm;
String flag = httpServletRequest.getParameter("flag");
String[] chk = httpServletRequest.getParameterValues("chk"); if(flag==null)
{
return actionMapping.findForward("show");
}else if(flag.equals("insert"))
{
System.out.println("insert");
Dog dog = new Dog();
try {
dog.insertM(createDogForm);
}
catch (SQLException ex) {
}
catch (Exception ex) {
}
return actionMapping.findForward("show");
}else if(flag.equals("goupdate"))
{
Dog d = new Dog();
Vector v = d.selectM("and id="+chk[0]);
createDogForm = (CreateDogForm)v.elementAt(0);
return actionMapping.findForward("add");
}else if(flag.equals("goinsert"))
{
System.out.println("goInsert");
createDogForm = new CreateDogForm();
System.out.println(createDogForm.getName());
return actionMapping.findForward("add");
} return actionMapping.findForward("show");
// }
}
内容如下:
<struts-config>
<form-beans>
<form-bean name="createDogForm" type="test.CreateDogForm" />
</form-beans>
<action-mappings>
<action input="/2.jsp" name="createDogForm" path="/createDogAction" scope="session" type="test.CreateDogAction" validate="true">
<forward name="add" path="/jsp1.jsp" />
<forward name="show" path="/jsp2.jsp" />
</action>
</action-mappings>
</struts-config>唉!没有用过taglib,怎么这么不好用呢!
就是不行!显示在页面上仍然有值,然后用creatDogForm.setXXX="";
都设置一遍,就好了!页面上没有值了!
在action中间用
Vector v = d.selectM("and id="+chk[0]);
createDogForm = (CreateDogForm)v.elementAt(0);
取出转换成form就不行,挨个进行createDogForm.setXXX竟然就可以了!
为什么呀!
改为request
看到你的代码,感觉有些不合理,你的很多业务业务规则不应该写在action,action只是扮演Ctroller的角色,应该把业务单独拉出来作一个BO层
相应的你要改
<action input="/2.jsp" name="createDogForm" path="/createDogAction" scope="request"
parameter="method">
而在jsp中你可以:
<html:form action="createDogAction.do?method=insert">
我想让它显示要修改的值!结果出不来了!
createDogForm = (CreateDogForm)v.elementAt(0);
来生成这个from,值没有代过去!
但我createDogForm.setName(tempForm.getName());
createDogForm.setAge(tempForm.getAge());
createDogForm.setTel(tempForm.getTel());
这样挨个设置的话,却代过去了!这是为什么呀!
Octer(米粒)
在(CreateDogForm)v.elementAt(0);中可是new了一个的!
难道这个有区别!
在列表页面中选择要修改的记录,在action中间生成该form,在添加(修改)页面,没有显示出来它的值!
如果用session的话!就有值!
如果只是学习,那用用session也无所谓, 不过实际引用中通常都是使用request周期。在request周期中formbean的值是不会丢失的。
在list页面中如果修改一条记录,则只是将该记录ID传到修改(同时也是增加)页面,你可以这样做,通过一个action去取的要修改的记录,填到formbean中的属性(你不需要new 那个formbean),
然后在action里forward的那个页面,数据自然就都带过去了,这样还不行只能是你的问题了,
呵呵
碍,这年头“赚点专家分”真不容易呀):
这个actionform在下一个页面应该是有值的!
但是还是显示不出来奇怪了!
欢成session就可以了!但是中间没有其它页面了!
直接由action转到页面上的呀!