请教Struts 里ActionForm的问题 (至急)

ActionFormBean 里面的数据能不能保持?
例如:我的ActionForm 中有某个属性 myText ,在Action中对这个属性设了值,然后显示这ActionForm对应的JSP,但我在JSP中没有用到myText,结果JSP重新提交以后,在Action中再取ActionForm的myText,发现myText的值已经不见了.

请问:
1. 在ActionServlet里ActionForm每次都是new的吗?
2. 有什么办法能不让ActionForm里的数据丢矢?

能把你的代码帖出来吗

把用到这个ActionForm的Action的配置(struts_config.xml)的scope属性设置为session , 如果设置成request,你提交一次,就算一个新的request,所以actionform的值会清空的。
设置为session,只要你不停止session,数值就不会没!

不要老是用session!
在Action里面new Form的时候加代码就得了:
if(form!=null){
.................
}

form在什么地方初始化呢?

1.actionform 在第一个使用此form得action获得请求时初始化。
2 在jsp中没用用到的form中的属性应当设置为hidden

不一定new
而是调用 reset()方法

sorry,又翻出来这么老的帖子。
我是也遇到相同的问题了。
并且将ActionForm的
scope设置成session也是一样,好像只要是提交给Action的ActionForm就会重新设置自己的属性值。


问问:
1.修改reset()是怎么回事?

谢谢

> ActionFormBean 里面的数据能不能保持?
> 例如:我的ActionForm 中有某个属性 myText
> ,在Action中对这个属性设了值,然后显示这ActionForm对应的
> SP,但我在JSP中没有用到myText,结果JSP重新提交以后,在Act
> on中再取ActionForm的myText,发现myText的值已经不见了.
jsp提交后原来的值没有,这不是很正常的吗?

>
> 请问:
> 1. 在ActionServlet里ActionForm每次都是new的吗?
不确定
> 2. 有什么办法能不让ActionForm里的数据丢矢?
放在session中或自己保存起来

修改值后做request.setArribute("formName",form)或者session.setArribute("formName",form)操作就OK了,formName要跟你的配置文件中的与你的Action相对应的form名字要一样

actionform根据你的配置从session或request中取得数据,struts内部决定是new一个还是重用以前生成的。

你好:
我有个问题但不知怎样发贴:我在ActiongForm理由getConfID()方法,jsp中有这样一句:<html:hidden property="ConfID" />浏览器报错说:javax.servlet.ServletException: No getter method for property ConfID of bean org.apache.struts.taglib.html.BEAN,请问谁能帮我找出原因吗?

在actionform可以有多点的属性,但在页面的form中的所有属性在actionform中都要找到所有对应的属性。

> 1.actionform
> 在第一个使用此form得action获得请求时初始化。
> 2 在jsp中没用用到的form中的属性应当设置为hidden

支持!

> 你好:
>
> 我有个问题但不知怎样发贴:我在ActiongForm理由getConfI
> ()方法,jsp中有这样一句:<html:hidden
> property="ConfID"
> />浏览器报错说:javax.servlet.ServletException: No
> getter method for property ConfID of bean
> org.apache.struts.taglib.html.BEAN,请问谁能帮我找出原
> 蚵穑?

你这个问题,应该是在jsp中该属性首字母未小写吧
getConfID对应的bean属性名应该是confID而不是ConfID