什么是Struts 2相当于ASP.NET的Request.Form(或FormCollection)?

时间:2010-07-17 23:20:53

标签: forms struts2 httpwebrequest

我正在使用Javascript动态地将文本框添加到我的jsp页面上的表单中。当该表单提交给某个操作时,我的操作如何获取这些文本框的值? (我正在使用Struts 2,顺便说一句。)在ASP.NET中,我能够在Form.Request / FormCollection中找到它们。有Struts 2等价吗?万分感谢。

2 个答案:

答案 0 :(得分:0)

在Struts2中,您可以在表单中创建bean以执行提交值。要创建输入文本框,请使用<s>标记。例如:

<s:textfield name="loginBean.userName" label="UserName" required="true" />

这里loginBean是传递给jsp页面的bean。 Bean由变量声明和变量的getter-setter组成。

然后在提交表单的后端Java中,您可以访问同一个bean。 在Java中声明getter-setter,然后您可以访问bean的属性。

 public LoginBean getLoginBean() {
                return loginBean;
        }

        public void setLoginBean(LoginBean loginBean) {
                this.loginBean = loginBean;
        }

public String authenticate(){         String username = loginBean.getUserName();

我建议查看开源Struts项目的源代码。

答案 1 :(得分:0)

听起来你正在尝试填充动态列表。为此,您只需在Action类属性名称的末尾使用 [n] 索引语法:

<强> HTML:

<input type="text" name="yourCollection[0]" value="first value" />
<input type="text" name="yourCollection[1]" value="second value" />
<input type="text" name="yourCollection[2]" value="third value" />

行动类:

public class YourAction extends Action {

   public List<String> yourCollection;

   public List<String> getYourCollection(){
       return yourCollection;
   }  

   public void setYourCollection(List<String> aCollection){
       this.yourCollection = aCollection;
   }      
}