关于后台取值问题

27257674 2007-04-28 08:28:45
在JSP页面出现的文本框的个数是不固定的,但其属性名是用FOR生成的.比如:
TEXT1,TEXT2,TEXT3.............

原来的程序是写死了的,所以采用静态FORM,现在改成了文本框的个数不固定,那么请问,可以使用动态FORM实现吗?
如果可以用动态FORM实现的话,FORM的属性该怎么定义,在后面取前台某个文本框的值,怎么取?
(不用REQUEST.GETPARAMETER的方式哈.用STRUTS的方式)
...全文
194 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
micalorsoftware 2007-04-29
  • 打赏
  • 举报
回复
不需要用动态form,只需要输入框起相同的名字,form中用数组接收就好了
27257674 2007-04-29
  • 打赏
  • 举报
回复
已经实现,用的是micalorsof的方法:

法1:
1:JSP页面上,所有文本框的NAME属性值一样(无论有多少个文本框):
<INPUT TYPE="TEXT" NAME="TEXTBOX" ............>
<INPUT TYPE="TEXT" NAME="TEXTBOX" ............>
2:ACTIONFORM里:
PRIVATE STRING[] TEXTBOX; // 变量名必须与JSP页面的一样

PUBLIC STRING[] getTextBox()
{
return TEXTBOX;
}
PUBLIC void setTextBox(STRING[] data)
{
TEXTBOX = data;
}

到时候,要那个控件的值,直接取就是了,[0]=控件1的值

法二:
1:JSP页面上,文本框的NAME属性值+下标方式:必须使用[]
<INPUT TYPE="TEXT" NAME="TEXTBOX[1]" ............>
<INPUT TYPE="TEXT" NAME="TEXTBOX[2]" ............>

2:ACTIONFORM里面大致与法1相同,所不同的是,
数组定义后,必须指定其大小,其值为,至少是页面上文本框的最大个数,否则文本框的值取不完(也可以大于页面上的文本框个数)

比如:JSP页面有文本控件10个

PRIVATE STRING[] TEXTBOX = NEW STRING[10]; // 变量名必须与JSP页面的一样
也可以
PRIVATE STRING[] TEXTBOX = NEW STRING[20]; // 变量名必须与JSP页面的一样
只是后面没值.

相比较的话,还是法一舒服一些,不用担心个数.
whirlsun 2007-04-28
  • 打赏
  • 举报
回复
这是struts的强项呀。不记不实现具体的方法。

试试按这个思路去搜索。

大概步骤是:
在actionform中定义一个数组,向数组中添加一个对象,每一对象其实就是你想出现在Text

定义一个特殊的取这个对象的方法,也是在actionform里

当页面提交时,每个text里的东西就自动的加入定义的那个数组里面了。

代码在办公室的机器里,所以只能谈谈实现的大概方法了

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧